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

推薦する

スネークゲームのアイデアを実現するためのJavaScript

JavaScriptゲームSnakeの実装アイデア(完全なコード実装)を参考までに説明します。具体...

MySql 学習 3 日目: データ テーブル間の接続とクエリの詳細

主キー:キーワード: 主キー機能: null にすることはできず、一意である必要があります。主キーの...

MySQL ルートパスワードエラー番号 1045 の解決方法

MySQLサービスを停止するWindowsでは、マイコンピュータを右クリック--管理--サービスと...

Linux での一般的なシェル スクリプト コマンドと関連知識

目次1. 覚えておくべき知識1. 変数タイプ2. シェル変数の説明3. シングルクォート、ダブルクォ...

MySQL列挙型のテスト例

プロジェクトを開発しているとき、支払い済み、支払済み、クローズ済み、返金済みなどの注文ステータスなど...

Dockerコンテナの起動失敗を解決する方法

質問: コンピュータを再起動した後、docker の mysql コンテナを再起動できません。原因が...

nginx における proxy_pass のさまざまな使用法の詳細な説明

目次プロキシ転送ルール最初のもの: 2番目のタイプ: 3番目のタイプ: 4番目のタイプ: 5番目:プ...

MySQL のキーとインデックスの違い

まずはコードを見てみましょう: ALTER TABLE reportblockdetail ADD ...

React における ref の一般的な使用法の概要

目次Refsとは何か1. 文字列型参照2. コールバック参照React.createRef() 4....

Windows に MySQL 8.0.16 をインストールする手順とエラーの解決方法

1. はじめに: mysql8以降は、これまでよく使われていたバージョンと比べてかなり変更点が大きい...

MySQL における explain の役割の詳細な説明

1. MYSQLインデックスインデックス: MySQL がデータを効率的に取得するのに役立つデータ構...

React スキャフォールディングの構築方法を学ぶ

1. フロントエンドエンジニアリングの複雑さいくつかの小さなデモ プログラムを開発するだけであれば、...

mysqlのkey_lenの計算方法についての簡単な説明

MySQL の explain コマンドは SQL のパフォーマンスを分析できます。その 1 つが ...

良いと思う国内のデザインサイトをいくつか選んでみました。

<br />私が良いと思った国内のデザインサイトをまとめてみました。広告ではありません!...

ES5とES6の違いを分析する

目次概要関数シグネチャオプションパラメータ非厳密モード例外処理実用要約する概要ご存知のとおり、ES6...