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

推薦する

W3C チュートリアル (15): W3C SMIL アクティビティ

SMIL は、Web にタイミングとメディアの同期のサポートを追加します。 SMIL は、Web に...

Centos8 の Django プロジェクトに nginx+uwsgi をデプロイするチュートリアル

1. 仮想環境virtualenvのインストール1. virtualenvをインストールするpip3...

VS2019をMySQLデータベースに接続するプロセスと一般的な問題の概要

今日の午後からVS2019をMySQLで使えるのではないかと思い、いろいろ環境構築を始めました。プロ...

CSS3 のディスプレイのグリッドレイアウトとフレックスレイアウトの詳細な説明

Gird レイアウトは Flex レイアウトといくつかの類似点があり、どちらもコンテナーの内部項目を...

MySQL でインデックスとして B+Tree を使用する利点は何ですか?

目次データベースにインデックスが必要なのはなぜですか?インデックスが B+Tree データ構造を使用...

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

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

MySQL のバイナリおよび varbinary データ型の詳細な説明

序文BINARY と VARBINARY は、文字列ではなくバイナリ文字列を格納する点を除いて、CH...

MySQLでビューを作成する方法

基本的な構文CREATE VIEW ステートメントを使用してビューを作成できます。構文の形式は次のと...

Linux でファイル権限を変更する chmod コマンドの詳細な分析

Linux chmodコマンドを使用して、ターゲット ファイルにアクセス、読み取り、書き込み、または...

固定テーブル幅テーブルレイアウト: 固定

テーブルを画面全体(残りの空白領域)に表示するために、幅属性は 100% と定義されることが多く、セ...

sed コマンドを使用して文字列を置換する Linux チュートリアル

文字列を置き換えるには、次の形式を使用する必要があります。 $ sed s/置換対象文字列/置換文字...

mysql 8.0.12 winx64 のダウンロードとインストールのチュートリアル

MySQL 8.0.12のダウンロードとインストールのチュートリアルは参考までに、具体的な内容は次の...

Linux サーバーに Python3 をインストールする 2 つの方法

最初の方法Alibaba Cloud および Baidu Cloud サーバーが利用可能です。 ! ...

mysql 8.0.16 winx64.zip インストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.16 winx64.zipのインストールと設定方法の具体的なコード...

CSS3 を使用して入力複数選択ボックスのスタイルをカスタマイズする例

原則: まず入力要素を非表示にし、次に CSS を使用してラベル要素のスタイルを設定します (他の要...