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フォーム入力監視の詳細な理解

推薦する

単一マシン上での Tomcat の複数インスタンスの実装

1. はじめにまず、1 台のマシンで複数のインスタンスを使用する理由という質問に答える必要があります...

Nginx で Angular プロジェクトを展開する際の落とし穴

コンパイル後にAngularプロジェクトをNginxにデプロイする方法をオンラインで検索すると、ほと...

MySQL 5.7.21 のインストールと設定のチュートリアル

mysql5.7.21の簡単なインストール構成は次のとおりです。 1. MySQLのインストール1....

MySQL ログイン警告問題の解決策

1. はじめにMySQL にログインすると、次のような警告が表示されることがよくあります。警告: コ...

Quill エディタでカスタム HTML レコードを挿入する詳細な例

もう2020年です。飢えた人間は単純なテキストでは満足できなくなり、さまざまなスタイルの派手なテキス...

Linux で crond ツールを使用してスケジュールされたタスクを作成する方法

序文Crond は Linux のスケジュール実行ツール (Windows のスケジュールされたタス...

Docker可視化管理ツールであるDocker UIの使用

1. DockerUIの紹介DockerUI は Docker API をベースとしており、Dock...

Vueドロップダウンリストの2つの実装方法の比較

Vueドロップダウンリストの2つの実装最初の方法はv-forを使用する <el-select ...

HBuilderX で Tomcat 外部サーバーを設定して、JSP インターフェイスを表示および編集する方法の詳細な説明

1. 最初の方法は、ローカルのTomcatを起動してJSPを表示することです。 tomcatのweb...

Linux で Tomcat を実行するいくつかの方法の説明

Linux での Tomcat の起動とシャットダウンLinux システムでは、コマンド操作を使用し...

Linuxの貼り付けコマンドの使い方

01. コマンドの概要貼り付けコマンドは各ファイルを列ごとに結合します。これは、2 つの異なるファイ...

Celery と Docker を使用して Django で定期的なタスクを処理する方法

Django アプリケーションを構築して拡張していくと、必然的に特定のタスクをバックグラウンドで自動...

Vueはボタン切り替え画像を実装します

この記事では、ボタン切り替え画像を実現するためのVueの具体的なコードを例として紹介します。具体的な...

Docker を使用して Jenkins をインストールするためのサンプル コード

Dockerコンテナのインストール時に遭遇しやすい2つの問題1.ポートはすでに割り当てられています(...

webpackでCSSを分割・圧縮し、リンクでインポートする手順

まずコードファイルの構造を見てみましょう。エントリファイル (index1.js) の内容: ...