ホームページ >運用・保守 >Nginx >Nginx キャッシュ クリーニング設定、Web サイトの静的リソースの更新を最適化

Nginx キャッシュ クリーニング設定、Web サイトの静的リソースの更新を最適化

PHPz
PHPzオリジナル
2023-07-05 11:57:062104ブラウズ

Nginx キャッシュ クリーニング構成、Web サイトの静的リソースの更新を最適化する

はじめに:
Web サイトの開発プロセスでは、CSS、JavaScript、画像などの静的リソースが頻繁に更新されます。ただし、ブラウザのキャッシュ メカニズムにより、訪問者は静的リソースの最新バージョンをすぐに取得できない場合があります。この問題を解決するには、キャッシュ クリーニング構成に Nginx を使用して、Web サイトの静的リソースの更新を最適化します。

1. Nginx キャッシュ構成
まず、次の指示を Nginx 構成ファイル nginx.conf に追加して、キャッシュ関連の設定を構成する必要があります:

http {
    ...
    proxy_cache_path /path/to/cache levels=1:2 keys_zone=cache_zone:10m max_size=10g inactive=60m;
    ...

    server {
        ...
        location ~* .(css|js|png|jpg|jpeg|gif|ico)$ {
            expires 30d;
            add_header Pragma public;
            add_header Cache-Control "public";
            proxy_cache cache_zone;
            proxy_cache_key $scheme$proxy_host$uri$is_args$args;
            proxy_cache_valid 200 301 302 404 1d;
        }
        ...
    }
    ...
}
  1. proxy_cache_path:設定 キャッシュ ディレクトリへのパス。レベル=1:2 は、キャッシュ ディレクトリ内の 2 レベルのサブディレクトリを使用してキャッシュ ファイルを保存することを意味します。これにより、ファイルの検索速度が向上します。 key_zone はキャッシュ領域の名前で、10m はキャッシュ インデックスに 10MB のメモリを割り当てることを意味します。 max_size はキャッシュ ファイルの最大サイズを示し、inactive は指定した時間内にアクセスがない場合にキャッシュ ファイルが削除されることを示します。
  2. location: キャッシュする必要がある静的リソース ファイルと一致するために使用されます。この例では、正規表現を使用して CSS、JavaScript、画像、その他のファイルを照合し、キャッシュの有効期限を 30 日に設定しています。
  3. add_header: HTTP 応答ヘッダー情報を追加し、Pragma を public に設定し、Cache-Control を public に設定して、パブリック キャッシュ サーバーとブラウザでキャッシュをキャッシュできるようにします。

2. Nginx キャッシュ クリーニング設定
ウェブサイトの静的リソース ファイルを更新するとき、訪問者が最新の静的リソースを取得できるように、キャッシュ内の古いバージョンのファイルをクリアする必要があります。 。これを実現するには、次のコードを Nginx 構成ファイルに追加します。

http {
    ...
    proxy_cache_path /path/to/cache levels=1:2 keys_zone=cache_zone:10m max_size=10g inactive=60m;
    ...

    server {
        ...
        location /purge-cache {
            internal;
            proxy_cache_purge cache_zone "$scheme$proxy_host$uri$is_args$args";
        }
        ...
    }
    ...
}
  1. location: キャッシュ クリーニング操作をトリガーする /purge-cache URL を定義します。 「内部」とは、この URL が内部アクセスに対してのみ有効であることを意味します。
  2. proxy_cache_purge: 指定された URL に対応するキャッシュ ファイルをクリアします。

3. コード例
Web サイトの CSS ファイルが http://example.com/static/css/style.css にあると仮定すると、次のコードを使用して、このファイル:

curl -X PURGE http://example.com/purge-cache/static/css/style.css

このリクエストにより、nginx はキャッシュ内の URL に対応するキャッシュ ファイルをクリアし、次回 URL にアクセスしたときにキャッシュが再生成されます。

結論:
Nginx キャッシュ クリーニングを構成することで、Web サイト上の静的リソースの更新を最適化できます。静的リソースを更新する場合、キャッシュをクリアするリクエストを送信するだけで済みます。これにより、訪問者は最新のリソース ファイルを取得し、Web サイトのパフォーマンスとユーザー エクスペリエンスを向上させることができます。

参考資料:

  • Nginx 公式ドキュメント: https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_purge

以上がNginx キャッシュ クリーニング設定、Web サイトの静的リソースの更新を最適化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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