この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 2246|答える: 0

[ウェブ] Nginxのウェブリソースキャッシュ(CDN)

[リンクをコピー]
掲載地 2024/07/17 22:10:31 | | | |
ウェブキャッシュについて話す前に、まずCDNについて話しましょう。CDNとは、ベアラーネットワークの上に構築・カバーされる分散型ネットワークであり、世界中のエッジノードサーバーフリートで構成されています。 CDNは発信元サーバーへの負担を分担し、ネットワークの混雑を回避し、異なる地域やシナリオでウェブサイトコンテンツの分散を確保し、リソースアクセスの速度を向上させることができます。 CDNは世界中のIDCのアクセラレーションノードにオリジンサーバーリソースをキャッシュし、エンドユーザーがオリジンサーバーリソースへのアクセスや取得を要求した際に、近隣のCDNノードにキャッシュされたリソースを入手し、リソースアクセス速度を向上させ、オリジンサーバーへの負担を分担できるようにします。

以下の図に示されています:



簡単に言えば、ユーザーが静的リソースにアクセスする際、CDNを使用した後は元のサーバーから取得するのではなく、計算とデータリターンを通じて現在のユーザーに最も近いCDNサービスを見つけます。

ウェブキャッシュの値はユーザーと元のサーバー間のサービスであり、Nginxはネイティブでウェブキャッシュ機能を提供しています。 他にはVarnish、Squid、Cachewallなど、ウェブキャッシュのプロキシ(中には単にウェブキャッシュを提供するものではありません)などがあります。

Nginxキャッシュ設定ドキュメントについて:ハイパーリンクのログインが見えます。

まず、キャッシュサービスを通じてリソースに初めてアクセスしたとき、キャッシュ状態は見逃すは、下図のようにオリジンサーバーに引き寄せを要求します。



2回目にリソースにアクセスすると、リソースがキャッシュされており、状態は打つ、下図に示されているように:



Nginxの主な構成パラメータは以下の通りです:

主なパラメータ:

proxy_cache_path/data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=180d use_temp_path=off;

●path:キャッシュされたファイルの保存経路を指定する必須パラメータ。
●levels:キャッシュディレクトリの階層を定義します。 各層は1(最大16選択、0-f)または2(最大256選択、00-ff)で表され、中間で: で区切られます。
proxy_cache_path /data/nginx/cache;  つまり、すべてのキャッシュは1つのディレクトリのみを持ち、例えば /data/nginx/cache/d7b6e5978e3f042f52e875005925e51b
proxy_cache_path /data/nginx/cache レベル=1:2;  つまり、キャッシュは2階層のディレクトリ(16*256=4096ディレクトリ)であり、例えば/data/nginx/cache/b/51/d7b6e5978e3f042f52e875005925e51b
● keys_zone:必須パラメータ。共有メモリ領域の名前とサイズを定義し、キャッシュアイテムのメタデータ(すべてのアクティブなキーおよびキャッシュされたデータ関連情報)を格納します。これによりnginxはリクエストがキャッシュに当たるか失敗するかを迅速に判断できます。1mは8000キー、10mは8000キー、10mは80000キーを保存できます。
●inactive:指定された時間内にアクセスされていないキャッシュファイルを削除し、デフォルトで10分間。
●max_size:キャッシュストレージの上限を設定し、指定しなければ最大でも全ディスク容量が使用されます。
● use_temp_path:一時ファイルを直接キャッシュディレクトリに配置します。


proxy_cachemy_cache;      #指定用于页面缓存的共享内存、ゾーン名は指令によって定義proxy_cache_path
proxy_cache_min_uses1;   ##はキャッシュの閾値、つまりリクエストが何回キャッシュされるかを規定し、低頻度リクエストは無駄を避けるためにキャッシュしません。
proxy_cache_valid200 3m;  #为不同的响应状态码设置不同的缓存时间、これはキャッシュステータスコードが200、キャッシュ持続時間が3分のリクエストです
proxy_cache_key$request_uri; #指定缓存文件的key为请求的URI
add_headerNginx-Cache-Status $upstream_cache_status;  #把缓存状态设置为头部信息、クライアントに返事をしてください
proxy_passhttp://webservers;  #设置代理转发的后端服务器的协议和地址

Nginxキャッシュプロキシを使ってクエリ文字列を無視してください

(終わり)




先の:dotnet-efツールを使ってロールバックスクリプトを生成してください
次に:Curlを使ってテストサイトのHTTP/3対応を確認しましょう
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com