Nginx ルーティング転送とリバースプロキシロケーション構成の実装

Nginx ルーティング転送とリバースプロキシロケーション構成の実装

Nginx を設定する 3 つの方法

最初の方法は、位置一致部分を直接置き換える。

2 番目の proxy_pass ターゲット アドレスには、デフォルトでは / が含まれません。つまり、プロキシ ドメイン名のみが使用され、URL とパラメータ部分は変更されません (要求されたパスは、プロキシ URL として proxy_pass ターゲット ドメイン名と連結されます)。

3 番目のタイプの proxy_pass ターゲット アドレスでは、その後に / が追加されます。これは、場所に正常に一致するパスの部分が切り取られ、proxy_pass ターゲット アドレスに結合されることを意味します。

場所の設定

場所 [ = | ~ | ~* | ^~ ] uri {...}

uri の前の角括弧内の内容はオプションであり、次のように説明されます。

  • 「=」: 標準 URI の前に使用され、リクエスト文字列が URI と厳密に一致することを要求し、一致したら停止します。
  • "~": 通常の URI の前に使用され、大文字と小文字が区別されます
  • "~*": 通常の URI の前に使用されますが、大文字と小文字は区別されません
  • "^~": 標準 URI の前に使用され、Nginx は、リクエスト文字列を照合するために場所ブロック内の通常の URI を使用する代わりに、URI とリクエスト文字列の間で最も一致する場所を見つけ、すぐにこの場所を使用してリクエストを処理する必要があります。

シンボル意味
=完全一致
^~非正規マッチング
正規表現マッチング(大文字と小文字を区別)
~*正規表現マッチング(大文字と小文字を区別しない)
!〜正規表現が一致しません(大文字と小文字を区別します)
!~*正規表現が一致しません(大文字と小文字は区別されません)
通常のマッチング(ここに記号がない場合)


たとえば、次の設定は3番目の設定スキームを示しています。http://44.179.118.54:80/shop/xxxにアクセスすると、

アクセスすると、Nginxは/shop/をインターセプトし、次のパスをproxy_passに連結します。

実際にアクセスするのは次のサービスです: http://44.179.118.54:8007/xxx

 #ショップサービス
 # リバースプロキシ shop-service サービスの場所 ^~ /shop/ {
     #proxy_redirect オフ;
     #プロキシ接続タイムアウト60;
     #プロキシ読み取りタイムアウト 60;
     #プロキシ送信タイムアウト60;
     #プロキシバッファサイズ4k;
     #プロキシバッファ 4 32k;
     #プロキシビジーバッファサイズ64k;
     #プロキシ一時ファイル書き込みサイズ 64k;
     #プロキシ最大一時ファイルサイズ 128m;
     プロキシパス http://44.179.118.54:8007/;
     #proxy_set_header X-Real-IP $remote_addr;

     #root /var/www/test/user/
     #インデックス index.html
     #proxy_pass https://www.baidu.com;
 }

Nginx ルーティング転送とリバース プロキシの場所設定の実装に関するこの記事はこれで終わりです。Nginx ルーティング転送とリバース プロキシに関するその他の関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Nginx アプリケーションの場所ルーティング、リバース プロキシ、および書き換え戦略の例
  • Nginxは、ルーティング(リバースプロキシ、リダイレクト)機能を実装するためにロケーションモジュールを設定します。

<<:  Vueのウォッチリスナーの使い方を説明する記事

>>:  HTML ヘッド構造

推薦する

JS のディープコピーとシャローコピーの詳細

目次1. 浅いコピーとはどういう意味ですか? 2. ディープコピーとはどういう意味ですか? 3. デ...

OpenLayersはポイントフィーチャーレイヤーの集約表示方法を実現します

目次1. はじめに2. ポイントフィーチャーレイヤーの集約3. 重合の特殊処理4. 重合の特殊処理 ...

Ubuntu 18.04 に MySQL をインストールする (グラフィカル チュートリアル)

ヒント: 以下の操作はすべて root 権限で実行されます。 # MySQL がインストールされてい...

js はマウスによる画像の切り替えを実装します (タイマーなし)

この記事の例では、マウス切り替え画像を実現するためのjsの具体的なコードを参考までに共有しています。...

mysql での rpm インストールの詳細な説明

インストールとアンインストールの表示 # rpm -qa | grep mysql を表示 # アン...

HTML要素によるFlashブロックの詳細な例

コードをコピーコードは次のとおりです。 wmode パラメータ:透過モード: z-indexを使用し...

CSS の overflow: hidden の使い方 (オーバーフローの非表示とフロートのクリア)

オーバーフロー非表示指定された高さを超えるテキストや画像情報を非表示にすることを意味します。 <...

Vueのログインとログアウトの詳細な説明

目次ログインビジネスプロセスログイン機能の実装要約するまず、エフェクトの実装プロセスを見てみましょう...

MySQLで置換関数を実装するためのいくつかの実用的なシナリオ

REPLACE構文REPLACE(String,from_str,to_str)つまり、String...

フロントエンドページのスライド検証を実装するための JavaScript + HTML

この記事では、フロントエンドページのスライド検証を実装するためのJavaScript + HTMLの...

Linuxシステムにおける仮想デバイスファイルのさまざまな実用的な使用法の詳細な説明

みなさんこんにちは。私は梁旭です。ご存知のとおり、Linux ではデバイス ファイルも含めすべてがフ...

英語の単語の出現頻度を数えるtrコマンドの魔法

置換を削除したり文字列を削除したりできる tr コマンドは、誰もがよく知っています。 英語では、英語...

MySQL で単一のデータベースまたはテーブルを復元する方法と、起こりうる落とし穴

序文:最も一般的に使用される MySQL 論理バックアップ ツールは mysqldump です。通常...

Reactフックの長所と短所

目次序文アドバンテージ:欠点: 1. レスポンシブな使用効果2. ステータスが同期されていないRea...

マインスイーパゲームを実装するための jQuery プラグイン (1)

この記事では、jQueryプラグインを使用したマインスイーパゲームの最初の記事の具体的なコードを参考...