ホームページ  >  記事  >  運用・保守  >  Nginx リバース プロキシ キャッシュの更新設定と Web サイトの静的リソースをリアルタイムで更新します

Nginx リバース プロキシ キャッシュの更新設定と Web サイトの静的リソースをリアルタイムで更新します

王林
王林オリジナル
2023-07-04 16:00:123440ブラウズ

Nginx リバース プロキシ キャッシュの更新構成、Web サイトの静的リソースのリアルタイム更新

はじめに:
Web 開発では、静的リソースは Web サイトの不可欠な部分です。ただし、頻繁に更新される静的リソースでは、アクセス中に古いバージョンが表示されたり、読み込みが遅くなったりする可能性があります。この問題を解決する効果的な方法は、Nginx のリバース プロキシ キャッシュ機能を使用し、Web サイトの静的リソースをリアルタイムで更新するように設定することです。この記事では、Nginx の設定を通じてこの機能を実現する方法を紹介します。

  1. リバース プロキシ キャッシュを有効にする:
    まず、Nginx 構成でリバース プロキシ キャッシュを有効にする必要があります。 Nginx 構成ファイル (通常は nginx.conf) を見つけて開き、http セクションを見つけて次の構成を追加します:

    http {
      proxy_cache_path /path/to/cache/directory levels=1:2 keys_zone=cache_zone:10m max_size=10g inactive=60m;
      proxy_temp_path /path/to/temporary/directory;
      proxy_cache_key "$scheme$request_method$host$request_uri";
      proxy_ignore_headers "Cache-Control" "Expires";
      proxy_cache_valid any 10m;
      proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
      
      server {
     ...
     location / {
       proxy_cache cache_zone;
       proxy_pass http://backend-server;
     }
     ...
      }
    }

    説明:

  2. proxy_cache_path##注※ リバースプロキシのキャッシュパスと関連する設定を設定します。 levels はディレクトリ レベル、keys_zone はキャッシュ領域の名前とサイズ、max_size はキャッシュの最大サイズを設定します、inactive キャッシュのタイムアウトを指定します。
  3. proxy_temp_path: 一時ディレクトリのパスを設定します。
  4. proxy_cache_key: キャッシュ キーの生成に使用される変数。$scheme はリクエスト プロトコルを表し、$request_method はリクエスト メソッドを表します。$host はリクエストのホスト名を表します。$request_uri はリクエストのホスト名を表します。リクエストのURI。
  5. proxy_ignore_headers: 無視する必要がある応答ヘッダーを指定します。
  6. proxy_cache_valid: キャッシュの有効時間を設定します。
  7. proxy_cache_use_stale: キャッシュの更新時に古いキャッシュの使用が許可される状況を定義します。
  8. 静的リソースのリアルタイム更新:
  9. Web サイト上の静的リソースのリアルタイム更新を実現するには、バックグラウンド プログラムまたはスクリプトに追加のロジックを追加して、更新後にキャッシュを更新するリクエストを発行する必要があります。静的リソースの各更新。以下は簡単な例です:
バックグラウンド プログラムまたはスクリプトでは、静的リソースが更新されたときに、HTTP リクエストを発行してキャッシュを更新します:

import requests

def refresh_cache():
  url = "http://your-nginx-server/purge-url"
  headers = {"Host": "your-hostname"}
  response = requests.get(url, headers=headers)
  
  if response.status_code == 200:
    print("Cache refreshed successfully!")
  else:
    print("Failed to refresh cache.")

Nginx 構成内ファイル、アドレス ルーティングとキャッシュ リフレッシュの構成:

location ~ /purge-url {
  internal;
  proxy_cache_purge cache_zone "$scheme$request_method$host$request_uri$is_args$args";
}

説明:

  • location: キャッシュ リフレッシュ リクエストを処理するためのルートを構成します。
  • internal: ルートは内部リクエストによってのみアクセスでき、外部リクエストによってはアクセスできないことを示します。
  • proxy_cache_purge: リフレッシュするキャッシュ領域と関連パラメータを設定します。
上記の設定で、

X-Purge-Cache: 1http://your-nginx-server/purge-url で GET リクエストを発行する場合、Nginx は、要求された URI に従って、対応するキャッシュを更新します。

    検証:
  1. 構成が正しいことを検証するには、ブラウザ、Postman、または同様のツールを使用して、
    X-Purge-Cache: 1## で GET を発行します。 # 聞く。キャッシュが正常に更新された場合、対応する静的リソースに再度アクセスすると、バックエンド サーバーから最新バージョンが取得され、ユーザーに最新の静的リソースが表示されるようにキャッシュが更新されます。
  2. 結論:
Nginx のリバース プロキシ キャッシュ構成と静的リソースのリアルタイム更新により、Web サイトのパフォーマンスとアクセス速度が向上し、ユーザーが最新の静的リソースを確実に取得できるようになります。リアルタイムリソースのリソース。これは、頻繁に更新される Web サイトにとって特に重要であり、バックエンド サーバーの負荷を軽減し、Web サイトの安定性と信頼性を向上させることもできます。この紹介がお役に立てば幸いです。

以上がNginx リバース プロキシ キャッシュの更新設定と Web サイトの静的リソースをリアルタイムで更新しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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