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

これは、ネイティブJSを使用してページングクリックコントロールを実装する必要がある面接の質問です。参...

MySQL innodb_autoinc_lock_mode について

innodb_autoinc_lock_mode パラメータは、auto_increment 列を持...

MySQL マルチテーブルクエリ例の詳しい解説 [リンククエリ、サブクエリなど]

この記事では、例を挙げて MySQL のマルチテーブル クエリについて説明します。ご参考までに、詳細...

Linux sftp コマンドの使用法の概要

sftp は、安全なファイル転送プロトコルである Secure File Transfer Prot...

Nginxの仕組みの詳細な説明

Nginxの仕組みNginx はコアとモジュールで構成されています。 Nginx 自体は実際にはほと...

div 要素に終了タグがないため、Web ページを開くことができません

最初は速度の問題だと思ったので、その後、すべての画像リンク リクエストをクロスサイト接続ではなくサイ...

Vue echarts は水平棒グラフを実現します

この記事では、水平棒グラフを実現するためのvue echartsの具体的なコードを参考までに共有しま...

純粋な CSS 流星群の背景サンプルコード

GitHubアドレス、気に入ったらスターを付けてくださいプラグインのプレビューチュートリアルコード表...

WindowsでMysql5.7.17のインストールと起動に失敗する問題を解決する

マシンに初めて MySQL をインストールします。オペレーティングシステムはwin7ですmysqlの...

複数のフィールドをグループ化するMySQLグループ

日常の開発タスクでは、データ テーブル内のグループ化フィールドに基づいて統計データを取得するために、...

2列の水平タイムラインを実装するためのVueサンプルコード

目次1.コンポーネントtimelineH.vueを実装する2. コンポーネントの呼び出しこの記事では...

VueはAmapを使用して都市の位置特定を実現

この記事では、Amapを使用して都市の位置特定を実現するVueの具体的なコードを参考までに共有します...

MySQL マスタースレーブ同期、トランザクションロールバックの実装原理

ビンログBinLog は、データベース テーブル構造の変更 (テーブルの作成、変更など) とテーブル...

Vueストレージにはブール値のソリューションが含まれています

Vueはブール値でストレージを保存します今日、問題に遭遇しました。バックグラウンドから返された真偽の...

Mysql クエリの結果セットを JSON データに変換するサンプル コード

Mysql はクエリ結果セットを JSON データに変換します 序文 学生テーブル 学生スコアテーブ...