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

推薦する

VMware仮想マシンブリッジによるインターネット相互接続を実現する方法

VMware をインストールして新しい仮想マシンを作成したら、オプション バーの [編集] - [仮...

Docker+nextcloudで個人用クラウドストレージシステムを構築

1. Dockerのインストールと起動 yum で epel-release をインストールします ...

MySQL を解凍してインストールおよび完全に削除する方法の詳細なグラフィック説明

1. MySQLをインストールする(1)ダウンロードしたMySQLの圧縮ファイルをMySQLをインス...

MySQL 全体または単一のテーブルデータのエクスポート

単一のテーブルをエクスポートするmysqldump -u ユーザー -p db名 テーブル名 >...

CSS疑似クラス名を数字で始めないでください

初心者が div+css を開発する場合、.ggg、#ccc などの形式の CSS 疑似クラス名を付...

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

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

Vue.js フロントエンド Web ページ ポップアップ非同期動作例の分析

目次1. 序文2. ポップアップコンポーネントを2つ見つける3. 自分で作る3.1. Promise...

MySQL で左結合を使用して where 条件を追加する問題の詳細な分析

現在の需要:グループとファクターの 2 つのテーブルがあります。1 つのグループは複数のファクターに...

MySQL 主キー ID を生成する方法 (自己増分、一意、不規則)

目次1. uuid関数を使用して、一意かつ不規則な主キーIDを生成します。 2. idの自動成長1....

CSS3 フィルターを使用して PNG 画像の色を変更するサンプル コード

この方法は、CSS3のdrop-shadow filterを使用して、png画像の不透明部分に任意の...

Javascript における分割代入構文の詳細な説明

序文ES6 で初めて導入された「構造化代入構文」を使用すると、配列やオブジェクトの値を異なる変数に挿...

Mac で Docker を使用して Oracle をデプロイする方法

Mac で Docker を使用して Oracle をデプロイする方法まずdockerをインストール...

HTMLで特殊記号を表示する(特殊文字対応表付き)

問題の再現HTML を使用して編集する場合、特殊記号によってエラーが表示されることが多く、極端な場合...

JS を使用して要素が配列であるかどうかを判断する例

検証できるデータの種類は次のとおりです a = [1,2,3,4,5,6]とします。 b = [とし...

Linux jdk のインストールと環境変数の設定チュートリアル (jdk-8u144-linux-x64.tar.gz)

最初にsudo suコマンドを使用して root アカウントに切り替えることをお勧めします。そうしな...