nginx proxy_pass 設定で URL が / で終わる場合と / なしで終わる場合の違いの詳細な説明

nginx proxy_pass 設定で URL が / で終わる場合と / なしで終わる場合の違いの詳細な説明

nginx が proxy_pass を設定する場合、末尾に "/" がある URL と末尾に "/" がない URL の違いは次のようになります。

注: location が正規表現の一致パターンである場合、proxy_pass 内の URL の末尾に「/」を付けることは許可されないため、正規表現の一致パターンは説明の範囲外となります。

proxy_pass 設定の URL が / で終わる場合、nginx が転送するときに、元の URI から場所の一致式が削除され、proxy_pass の URL に追加されます。

テストアドレス: http://192.168.171.129/test/tes.jsp

シナリオ 1:

場所 ^~ /test/ {
 プロキシパス http://192.168.171.129:8080/server/;
}

プロキシ後の実際のアクセス アドレス: http://192.168.171.129:8080/server/tes.jsp

シナリオ2:

場所 ^~ /test {
 プロキシパス http://192.168.171.129:8080/server/;
}

プロキシ後の実際のアクセス アドレス: http://192.168.171.129:8080/server//tes.jsp

シナリオ3:

場所 ^~ /test/ {
 プロキシパス http://192.168.171.129:8080/;
}

プロキシ後の実際のアクセス アドレス: http://192.168.171.129:8080/tes.jsp

シナリオ4:

場所 ^~ /test {
 プロキシパス http://192.168.171.129:8080/;
}

プロキシ後の実際のアクセス アドレス: http://192.168.171.129:8080//tes.jsp

proxy_pass 設定の URL の末尾に / がない場合、URL にパスが含まれていなければ、元の URI が proxy_pass の URL の後に直接連結されます。URL にパスが含まれている場合は、場所の一致式と proxy_pass の URL を削除した後に元の URI が連結されます。

テストアドレス: http://192.168.171.129/test/tes.jsp

シナリオ 1:

 場所 ^~ /test/{
 プロキシパス http://192.168.171.129:8080/server;
 }

プロキシ後の実際のアクセス アドレス: http://192.168.171.129:8080/servertes.jsp

シナリオ2:

場所 ^~ /test {
 プロキシパス http://192.168.171.129:8080/server;
}

プロキシ後の実際のアクセス アドレス: http://192.168.171.129:8080/server/tes.jsp

シナリオ3:

場所 ^~ /test/ {
 プロキシパス http://192.168.171.129:8080;
}

プロキシ後の実際のアクセス アドレス: http://192.168.171.129:8080/test/tes.jsp

シナリオ4:

場所 ^~ /test {
 プロキシパス http://192.168.171.129:8080;
}

プロキシ後の実際のアクセス アドレス: http://192.168.171.129:8080/test/tes.jsp

これで、nginx proxy_pass の URL 末尾の有無の違いに関するこの記事は終了です。nginx proxy_pass URL 末尾の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • nginx における proxy_pass のさまざまな使用法の詳細な説明
  • Nginx の場所と proxy_pass パスの設定の問題の概要
  • nginx の場所に複数の Proxy_pass メソッドがある
  • nginx リバース プロキシでの proxy_pass の実装
  • nginx の 2 つのモジュールの proxy_pass の違い

<<:  js での Object.create インスタンスの使用法の詳細な説明

>>:  HTMLフォーム入力監視の詳細な理解

推薦する

Linux環境でタイムゾーンを設定できない問題を解決

Linuxでタイムゾーンを変更する場合、常に変更することはできませんAsia/Shanghai に変...

MySQL 重複インデックスと冗長インデックスの例の分析

この記事では、例を使用して MySQL の重複インデックスと冗長インデックスについて説明します。ご参...

JavaScript BOM の説明

目次1. BOMの紹介1. JavaScriptは3つの部分から構成される2.ウィンドウオブジェクト...

MySQL 5.7 mysql コマンドラインクライアントの使用コマンドの詳細

MySQL 5.7コマンドを使用するMySQLコマンドラインクライアント1. パスワードを入力してく...

ES9の新機能の詳細な説明: 非同期反復

目次非同期トラバーサル非同期反復可能トラバーサル非同期反復生成非同期メソッドと非同期ジェネレーター非...

React dva実装コード

目次ドヴァdvaの使用DVAの実装非同期をサポートルーターの実装成し遂げる:ドヴァdva は、red...

JS を使用して Web ページのウォーターフォール レイアウトを実装する方法

目次序文:ウォーターフォールレイアウトとは何ですか?達成方法: 1. 画像を取得する2. 画像の帯域...

DockerにMySQL 8.0をインストールする方法

環境: MacOS_Cetalina_10.15.1、Mysql8.0.18、Docker_2.0....

CentOS のファイルと権限の基本操作チュートリアル

序文始める前に、ファイル属性とファイル属性を変更する方法について簡単に理解しておく必要があります。 ...

ネイティブJSは非常に見栄えの良いカウンターを実装します

今日は、ネイティブ JS で実装された見栄えの良いカウンターを紹介します。効果は次のとおりです。 以...

ネイティブ js でカスタム スクロール バーを実装する

この記事の例では、カスタムスクロールバーを実装するためのjsの具体的なコードを参考までに共有していま...

CentOS で RPM を使用して MySQL 5.6 をインストールするチュートリアル

これまでのプロジェクトはすべて Windows システム環境にデプロイされていました。今回は Lin...

docker runとstartの違い

docker における実行と開始の違いDocker run はミラーイメージを指定します。そしてdo...

APP (IOS、Android) を呼び出すモバイル H5 の記述例

iOS 1. URLスキームこのソリューションは基本的に、WeChat、QQ 組み込みブラウザ、QQ...

Vue + OpenLayers クイックスタートチュートリアル

Openlayers は、WebGIS クライアント向けのモジュール式で高性能かつ機能豊富な Jav...