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

推薦する

Linux カーネル デバイス ドライバー Linux カーネル 基本メモの概要

1. Linuxカーネルドライバモジュールの仕組み静的ロードでは、ドライバモジュールをカーネルにコン...

CSS3 border-radius 丸角の実装方法と使い方の詳しい説明

以前は、角を丸くするのは非常に面倒でしたが、CSS3 では、角を丸くするのは非常に簡単になり、bor...

mysql8.0.19 winx64バージョンのインストール問題を解決する

MySQL は、スウェーデンの会社 MySQL AB によって開発されたオープンソースの小規模なリレ...

Mysql マスタースレーブレプリケーションの注意事項の説明

1. マスター'x@xxxx:x'への接続エラー- 再試行時間: 60 再試行回数:...

VueでTypeScriptを使用する方法

導入近年、TypeScript を求める声がますます高まり、TypeScript はフロントエンドに...

CSS 動的読み込みバー効果のサンプルコード

CSS変数の知識を使って、追加したコードとコメントを直接投稿します <!DOCTYPE htm...

MySQL 5.7.24 圧縮パッケージのインストールと設定方法のグラフィックチュートリアル

この記事では、参考までにMySQL 5.7.24圧縮パッケージのインストールチュートリアルを紹介しま...

MySQL データベースでよく使用される SQL ステートメントの詳細と概要

この記事では、MySQL データベースでよく使用される SQL ステートメントを例を使用して説明しま...

HTML マルチヘッダーテーブルコード

1. マルチヘッダーテーブルコードコードをコピーコードは次のとおりです。 <!DOCTYPE ...

MySQLのマスタースレーブレプリケーションと読み取り書き込み分離を理解するための記事

目次導入1. MySQL マスタースレーブレプリケーション1. MySQLレプリケーションタイプ2....

CSSをiPhoneのフルスクリーンに適応させる方法

1. メディアクエリ方式 /*iPhone X への適応*/ @media 画面のみ、(デバイス幅:...

sql_mode を変更する際の MySQL エラーの解決方法

目次ERR 1067による殺人事件2番目の問題の原因はsql_modeです3. sql_modeを設...

UbuntuはPythonスクリプトのサンプルコードを定期的に実行する

オリジナルリンク: https://vien.tech/article/157序文この記事では、Ub...

divの適応高さは残りの高さを自動的に埋めます

シナリオ 1: HTML: <div class="outer"> ...