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 を区別する方法

推薦する

MySQL データの集約とグループ化

多くの場合、データを実際に取得せずに要約する必要があり、 MySQLこの目的のために特別な関数を提供...

MySQL ストアド プロシージャの作成と呼び出しの詳細な説明

目次序文ストアドプロシージャ: 1. ストアドプロシージャの作成と呼び出し1. ストアドプロシージャ...

Docker が占有するディスク領域をクリーンアップする方法

Docker は多くのスペースを占有します。コンテナを実行したり、イメージを取得したり、アプリケー...

デザイン理論: コンテンツプレゼンテーションのための 10 のヒント

<br /> テキスト、記号、リンクの3つの側面に焦点を当て、主に中国語で、個人的な執筆...

Linuxの相対パスと絶対パスの使用

01. 概要絶対パスと相対パスはシェル環境でよく使用され、それぞれに独自の用途があります。相対パスの...

Windows10 での MySQL msi インストール チュートリアル (画像とテキスト付き)

1. ダウンロード1. MySQL msi 公式 Web サイトから最新のダウンロードをクリックす...

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

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

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

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

Nginx http ヘルスチェック構成プロセス分析

パッシブチェックパッシブ ヘルス チェックでは、NGINX と NGINX Plus はイベントの発...

MySQL における distinct と group by の違い

簡単に言うと、distinct は重複を削除するために使用され、group by は統計を集計するよ...

MySQL サーバーの接続、切断、および cmd 操作

mysql コマンドを使用して MySQL サーバーに接続します。 MySQL サーバーが起動したら...

React Native の基本原則の深い理解 (Bridge of React Native)

この記事では、React Native の基本をすでに理解していることを前提とし、ネイティブと Ja...

中国語ウェブコンテンツを紹介する10の経験

<br /> テキスト、シンボル、リンクの 3 つの側面に焦点を当て、主に中国語で、私の...

Javascriptジェネレータの紹介と使用

ジェネレータとは何ですか?ジェネレーターは関数内で実行されるコードです。値を返した後、一時停止し、呼...