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 ヘッド構造

推薦する

html-webpack-plugin' を使用してメモリ内に HTML ページ プラグインを生成します。

webpackjs ファイルをパッケージ化するときに、次に示すように、index.html インタ...

JavaScript マクロタスクとマイクロタスクの実行順序についての簡単な説明

目次1. JavaScriptはシングルスレッドです1. 同期タスク2. 非同期タスク2. タスクキ...

Windows での MySQL 8.0.11 インストール チュートリアル

この記事は、WindowsでのMySQL 8.0.11のインストールチュートリアルを記録しています。...

Nginx のパラメータをオンにして Web パフォーマンスを 3 倍向上させる方法

1. 遭遇したいくつかの問題2008 年にパフォーマンス テストを行っていたとき、パフォーマンス テ...

Vueはリストのシームレスなスクロールを実装します

この記事の例では、リストのシームレスなスクロールを実現するためのvueの具体的なコードを参考までに共...

MySQL 5.7.18 のインストールと設定方法のグラフィックチュートリアル (CentOS7)

LinuxにMySQL 5.7.18をインストールする方法1. MySQLをダウンロードします。公...

Workbench を介して MySQL データベースにリモートでアクセスする方法の詳細な説明

序文Workbench が 1 台のコンピューターにインストールされており、別の Ubuntu サー...

VueプロジェクトでReactを書く方法の詳細

jsx/tsxファイルを直接作成できます今回のプロジェクト構成は以下のとおりです。 vueファイルで...

CSS フロントエンドページレンダリング最適化属性 will-change の具体的な使用法

序文スクロールやサイズ変更などのスクロール イベントがトリガーされると、トリガーの頻度が非常に高くな...

Node.js の非同期イテレータの詳細な説明

目次序文非同期イテレータとは何ですか?非同期イテレータストリームとしてページング機能を備えたAPIの...

ネイティブ CSS で無限テキストカルーセルを実装する一般的な方法

テキストカルーセルは私たちの日常生活で非常に一般的です。スーパーマーケットや実店舗の入り口には、テキ...

Linux と Windows でスケジュールされたタスクを設定する方法

目次リナックス1. crontabの基本的な使い方2. ログを有効にする3. スケジュールされたタス...

Vue で Baidu Map を呼び出して経度と緯度を取得する

プロジェクトでは、現在地の緯度経度を取得したり、場所を検索して緯度経度情報を取得したりする必要があり...

uni-appがNFC読み取り機能を実装

この記事では、参考までに、NFC読み取り機能を実装するためのuni-appの具体的なコードを紹介しま...

HTML ヘッドタグの詳細な紹介

HTML のヘッド部分には、ブラウザによる Web ページのレンダリングや SEO などに関連するタ...