nginx をプロキシ キャッシュとして使用する方法

nginx をプロキシ キャッシュとして使用する方法

キャッシュを使用する目的は、バックエンドの負荷を軽減し、Web サイトの同時実行性を向上させることです。ウェブサイトの設計では、より優れた分散化を実現するために、リクエストをフロントエンドに集中させて処理できるように最善を尽くします。

一般的なキャッシュ タイプには、クライアント キャッシュ、プロキシ キャッシュ、サーバー キャッシュなどがあります。

クライアント キャッシュ [キャッシュはローカルに保存され、たとえばデータはユーザーのブラウザ キャッシュに保存され、ローカルで読み取られます] プロキシ キャッシュ [キャッシュはプロキシまたはミドルウェアに保存され、たとえばサーバーから取得したデータは nginx 上に配置され、アクセス時に nginx キャッシュが直接読み取られます] サーバー キャッシュ [キャッシュはサーバーに保存され、多くの場合、redis や memchache が使用されます。たとえば、キーと値の形式のデータです]

プロキシ キャッシュの簡単な説明:

Nginx プロキシ キャッシュ構成:

proxy_cache_path /opt/www/cache レベル=1:2 キーゾーン=テストキャッシュ:10m 最大サイズ=10g 非アクティブ=60m 使用テンポパス=オフ;
 
サーバー{ 
	 聞く 80;
	 サーバー名 cache.test.com;
	 #rewrite ^/(.*)$ https://${server_name}$1 permanent; #Httpsへジャンプ
 
     $request_uri が test.html|ログイン|登録|パスワード|\/リセットの場合
            $cookie_nocache を 1 に設定します。
     }
 
	 位置 / { 
		    proxy_cache test_cache; #keys_zone の値は proxy_cache_path proxy_pass http://127.0.0.1:8081 と等しくなければなりません。
            プロキシキャッシュの有効時間 200 304 12時間;
            proxy_cache_valid 任意の 10m;
            proxy_cache_key $host$uri$is_args$args;
            proxy_no_cache $cookie_nocache $arg_nocache $arg_comment;
            proxy_no_cache $http_pragma $http_authorization;
    }
}

パラメータの説明:

  • proxy_cache_path キャッシュファイルパス
  • レベルはキャッシュファイルのディレクトリ階層を設定します。レベル=1:2は2つのディレクトリレベルを意味します。
  • keys_zone は、キャッシュ名と割り当てられた領域のサイズを設定します。10m は 10 MB を意味します。
  • max_size このディレクトリの最大サイズ。10g は 10 GB を意味します。 10G を超えると、nginx は独自の排除および削除ルールに従って一部のキャッシュ データを削除し、デフォルトでキャッシュ時間が最も長いキャッシュ データを上書きします。
  • 非アクティブ 指定された時間内に誰もアクセスしない場合は削除されます。60mは60分を意味します
  • use_temp_pathは一時ファイルを保存するために使用されます。オフに設定することをお勧めします。

その他のパラメータについては、nginx の公式 Web サイトを参照してください: モジュール ngx_http_proxy_module: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_path

  • proxy_cache test_cache は、プロキシ キャッシュが有効になっていることを示します。プロキシ キャッシュを使用しない場合は、この値を off に設定します。
  • proxy_pass プロキシアドレス
  • proxy_cache_valid 200 304 12h; ステータス コード 200 または 304 の応答は 12 時間で期限切れになります。
  • proxy_cache_valid any 10m; 200 および 304 以外のステータス コードのキャッシュ時間は 10 分です。
  • proxy_cache_key $host$uri$is_args$args; デフォルトのキャッシュ キーを設定します。 $is_args は、リクエスト内の URL にパラメータがあるかどうかを示します。パラメータがある場合、$is_args の値は「?」になります。パラメータが指定されていない場合は、空の文字列になります。 $args は HTTP リクエスト内のパラメータを表します。
  • proxy_no_cache URL が test.html 、 login 、 register 、 password 、 reset と一致する場合、この URL に対応するページはキャッシュされません。

設定が完了したら、構文が正しいかどうかを確認します。nginx -tc /etc/nginx/nginx.conf、次にサービスを再ロードします。nginx -s reload

付録: nginx のスムーズな再起動

[root@localhost nginx]# nginx -s リロード

[root@localhost nginx]# ps -elf|grep nginx

1 S ルート 10175 1 0 80 0 - 27830 sigsus 09:52 ? 00:00:00 nginx: マスタープロセス nginx

5 S www 11165 10175 0 80 0 - 28893 ep_pol 18:10 ? 00:00:00 nginx: ワーカープロセス

5 S www 11166 10175 0 80 0 - 28893 ep_pol 18:10 ? 00:00:00 nginx: ワーカープロセス

5 S www 11167 10175 0 80 0 - 27830 ep_pol 18:10 ? 00:00:00 nginx: キャッシュマネージャプロセス

再起動が完了すると、期限切れのキャッシュを削除するという主な機能を持つ、memcached の LRU アルゴリズムに似た追加のキャッシュ マネージャーが存在します。ただし、キャッシュの有効期限が切れておらず、サーバーのデータが変更されている場合は、間違ったデータにアクセスされてしまいます。これはプログラミングを通じて実現できます。

要約する

nginx をプロキシ キャッシュとして使用する方法については、これで終わりです。nginx をプロキシ キャッシュとして使用する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Nginx リバース プロキシとキャッシュおよびキャッシュのクリア方法
  • オペレーターが知っておくべき 18 個の Nginx プロキシ キャッシュ構成のヒント (どれを知っていますか?)

<<:  MySQLデータベースの基礎知識

>>:  マウスを動かしたときにセカンダリメニューバーを実装するために HTML+CSS を使用する例

推薦する

HTML構造化実装方法

DIV+css構造 CSSレイアウトを学んでいますか?まだ純粋な CSS レイアウトを完全に習得でき...

Vue.jsのレンダリング関数の使い方の詳しい説明

Vue では、ほとんどの場合、テンプレートを使用して HTML を作成することを推奨しています。ただ...

ウェブデザインの概要

<br />1998年に最初の個人ページが誕生してから2008年の今日まで、デザイン業界...

Tomcat 経由で JMX 監視を有効にする方法

シミュレーション環境を構築する:オペレーティングシステム: centos7メモリ: 1G 1.8.0...

el-table ヘッダーでテキストを折り返す 3 つの方法の詳細な説明

目次問題の説明レンダリング3種類のコード要約する問題の説明通常、表のヘッダーは折り返されませんが、ビ...

vue+tsは要素のマウスドラッグの効果を実現します

この記事の例では、要素のマウスドラッグ効果を実現するためのvue+tsの具体的なコードを参考までに共...

CSS3を使用してヘッダーアニメーション効果を作成する

Netease Kanyouxi公式サイト(http://kanyouxi.163.com/)(棚...

Vue-Element-Adminはログインジャンプを実現するために独自のインターフェースを統合しています

1. まずリクエスト設定ファイルを見て、axios.createメソッドを見てください。baseUR...

新しいユーザーを作成し、MySQLに権限を付与する最も簡単な方法

ユーザーを作成します: 'oukele' によって識別されるユーザー 'ou...

バックエンドデータを取得するためのVue Elementフロントエンドアプリケーション開発

目次概要1. バックエンドデータの取得と処理2. インターフェース表示処理概要前回のエッセイ「ステッ...

新しく作成された MySQL ユーザーの % には localhost が含まれていますか?

通常の説明%はどのクライアントでも接続できることを意味しますlocalhostはローカルコンピュータ...

更新SQL文に基づくMySQLロックの理解

序文MySQL データベース ロックは、データの一貫性を実現し、同時実行性の問題を解決するための重要...

MySQL および Oracle のバッチ挿入 SQL の一般的な記述例

目次例えば:一般的な執筆:要約する例えば:次に、データベースのUSERテーブルにUserオブジェクト...

MySQL ストアド プロシージャの概念、原則、一般的な使用法の詳細な説明

この記事では、例を使用して、MySQL ストアド プロシージャの概念、原則、および一般的な使用法につ...

Tomcat セキュリティ仕様 (Tomcat セキュリティ強化と仕様)

tomcat はオープンソースの Web サーバーです。Tomcat ベースの Web は実行効率...