Nginx の break と last の違いの詳細な分析

Nginx の break と last の違いの詳細な分析

まずは違いについて話しましょう

  • 最後に、書き換えられたルールは、次の場所と一致させるために書き換えられた値を引き続き使用します。
  • break の場合、書き換えられたルールは次の場所と一致しなくなります。新しいルールを使用すると、http リクエストが直接開始されます。

Nginx 設定ファイル

サーバー{
  聞く 88;
  サーバー名_;
  場所 /break { # 場所 1
   書き換え ^/break/(.*)$ /bak/$1 break;
  }
  場所 /last { # 場所 2
   ^/last/(.*)$ /bak/$1 last を書き換えます。
  }

  場所 /bak { # 場所 3
   デフォルトタイプはtext/htmlです。
   200 $uri を返します。
  }

}

http://rumenz.com:88/break/one をご覧ください。

location1 にアクセスすると、ブラウザのアドレスバーは変化しません。直接 /nginx/html/bak/one ファイルを探しに行きます。そのようなファイルは存在しないため、404 が返されます。

ブラウザ

Nginx エラー (error.log) ログ

/nginx/html/bak/one が失敗しました (2: そのようなファイルまたはディレクトリはありません)

break は書き換え後に停止し、ロケーション ブロックと一致しなくなることを意味します。

http://rumenz.com:88/last/one をご覧ください。

場所2を押すとブラウザのアドレスバーは変化しないので、場所3に再度一致させます。

最後は書き換え後のロケーションブロックにジャンプし、書き換えられたアドレスと再度一致させることを意味します。

breakとlastの使用例

壊す

ファイルのダウンロード、実際のファイル サーバーを非表示にして保護します。

場所 /down {
 書き換え ^/down/(.*)$ https://rumenz.com/file/$1 break;
}

最後

インターフェースアドレスを書き換え、https://rumenz.com/api/list を https://rumenz.com/newapi/list に書き換えます。

場所 /api {
 ^/api/(.*)$ /newapi/$1 を最後に書き換えます。
}

場所 /newapi {
 デフォルトタイプ Application/json;
 200 '{"code":200,"msg":"ok","data":["JSON.IM","json format"]}' を返します。
}

要約する

Nginx の break と last の違いについての記事はこれで終わりです。Nginx の break と last の違いについてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Nginx 設定で rewrite を書くときの last と break の違いの分析

<<:  シャトルボックス機能を実装するためのVueの詳細なコード

>>:  MySQL の innodb_flush_log_at_trx_commit と sync_binlog を区別する方法

推薦する

Vite2とVue3を使用したウェブサイトの国際化を実現するプロセス全体

目次序文vue-i18nをインストールするロケールの設定getLangs.js の実装i18nインス...

XHTML CSSを使用して正式なブログを書く

ブログの正式名称は「Web log」で、中国語で「ネットワークログ」を意味します。後にブログに短縮さ...

Vue.js ドロップダウン コンポーネント付きテキストボックス

ドロップダウン付きのテキストボックスを使用すると、ユーザーはドロップダウン リストから入力を選択した...

WeChatアプレット実装アンカー位置決め機能の例

序文小規模なプログラムの開発では、リストをスクロールして表示する必要性に遭遇することがよくあります。...

jQuery は、画像を切り替えるための左ボタンと右ボタンのクリックを実装します。

この記事では、左ボタンと右ボタンをクリックすることで画像を切り替えるjQueryの具体的なコードを例...

Linux サーバーのステータスとパフォーマンスに関連するコマンドの詳細な説明

サーバーステータス分析Linux サーバーの CPU の詳細を表示する#CPU情報を表示[root@...

HTML のテキストエリア タグ

<textarea></textarea> は、複数行を入力できるテキスト ...

React Hooks の一般的な使用シナリオ (概要)

目次1. ステートフック1. 基本的な使い方2. 更新3. 合併を実現する4. 遅延初期化状態5. ...

Linux で Squid プロキシ サーバーを構築するための完全な手順

序文この記事では、Linux で Squid プロキシ サーバーを設定することに関する関連コンテンツ...

CSS で点線の境界線のスクロール効果を実装するサンプルコード

マウスをある領域の上に置くと、その領域に点線の境界線と線のアニメーションが表示されるというクールな効...

HTML2 キャンバス SVG が認識されない場合の解決策

ウェブページを画像としてキャプチャする新機能があったので、人気のhtml2canvasを使ってみまし...

ApacheとTomcatによるクラスタ環境構築プロセスの分析

実際、Apacheクラスタを構築するのは難しくありません。私もインターネットで情報を見つけて自分で設...

vitrualBox+ubuntu16.04 python3.6 最新チュートリアルと詳細な手順のインストール

最近ディープラーニングを学ぶためにUbuntu+Python 3.6バージョンを使う必要があるため、...

Ubuntu環境でPHPとNginxをコンパイルしてインストールする方法

この記事では、Ubuntu 環境で PHP と Nginx をコンパイルしてインストールする方法につ...

dl、dt、dd はいつ使用するのが適切ですか?

dl:定義一覧定義リストdt:定義タイトルタイトルを定義するdd:定義説明定義の説明dt は情報のタ...