サーバーマッチングロジック Nginx は、リクエストを実行するサーバー ブロックを決定するときに、サーバー ブロック内の listen フィールドと server_name フィールドに注目します。 listen ディレクティブ listen フィールドは、サーバーが応答する IP とポートを定義します。listen フィールドが明示的に設定されていない場合、デフォルトのリスナーは 0.0.0.0:80 (ルート) または 0.0.0.0:8080 (非ルート) になります。 listen は次のように設定できます。
最後のものは通常、異なるサーバー間でリクエストを転送するためにのみ使用されます。 使用するサーバーを選択するためのルールは次のとおりです。
繰り返しになりますが、server_name ディレクティブは、listen ディレクティブが最適な一致を見つけられない場合にのみ評価されます。 たとえば、example.com ドメインが 192.168.0.1 を指しており、192.168.0.1 上の nginx には次の 2 つのサーバー ブロックしかないとします。 # サーバーブロック 1server { 192.168.0.1 をリッスンします。 サーバー名 other.com ... } # サーバーブロック 2server { 聞く 80; サーバー名 example.com ... } Server_name ディレクティブ listen ディレクティブに従って最適な一致が見つからない場合は、server_name ディレクティブが解析されます。Nginx はリクエスト内の「Host」ヘッダーをチェックします。この値には、クライアントが実際に要求しようとしているドメイン名または IP アドレスが含まれます。Nginx はこの値に基づいて server_name ディレクティブを一致させます。一致ルールは次のとおりです。
次に例を示します。 (1)正確なserver_nameのマッチング、例: サーバー{ 聞く 80; サーバー名 www.domain.com; ... } (2)ワイルドカード文字*で始まる文字列: サーバー{ 聞く 80; サーバー名 *.domain.com; ... } (3)ワイルドカード文字*で終わる文字列: サーバー{ 聞く 80; サーバー名 www.*; ... } (4)正規表現のマッチング: サーバー{ 聞く 80; サーバー名 ~^(?.+)\.ドメイン\.com$; ... } (5) 上記のいずれにも一致しない場合は、default_server が使用されます。default_server が指定されていない場合は、最初に利用可能なサーバーが選択されます。一致するホスト値がない場合、クライアントにエラーが返されるように指定できます。これにより、他の人があなたのウェブサイトにジャンクトラフィックをリダイレクトするのを防ぐことができます。 サーバー{ 80 default_server をリッスンします。 server_name _; 444 を返します。 } nginxの非標準エラーコード444を返して、nginxをブラウザから切断します。 位置マッチングロジック 場所構文解析 場所 オプション修飾子 場所の一致 { ... } 利用可能な修飾子は次のとおりです 決定ルール 1. Nginxはまずプレフィックスベースの場所の一致(つまり正規表現を含まない一致)をチェックします。 2. = 修飾子を使用したロケーション ブロックが要求された URL と完全に一致する場合、そのロケーションは要求に応答するために直ちに使用されます。 3. = 修飾子に一致するロケーション ブロックが見つからない場合は、不正確なプレフィックスの計算が続行され、指定された URI に従って最も長く一致するプレフィックスが検索され、次の処理が実行されます。 (1)最も長く一致する場所に^~修飾子がある場合、nginxはすぐにその場所を使用してリクエストに応答します。 (2)最も長い一致箇所に^~修飾子がない場合、nginxは一致箇所を一時的に保存し、その後に続く一致箇所に進みます。 4. 最も長く一致するプレフィックス ロケーション ブロックを決定して保存した後、nginx は正規表現の一致するロケーション (大文字と小文字を区別する/区別しない) のチェックを続行します。要件を満たす正規表現がある場合は、要求された URI に一致する最初の正規表現ロケーションが選択され、要求に応答します。 5. 要求された URI に一致する正規表現の場所が見つからない場合は、以前に保存された最長のプレフィックスの場所を使用して要求に応答します。 補充する 通常、リクエストに応答する場所が選択されると、他の場所に関係なく、その場所でリクエストが処理されます。ただし、場所内の一部の指示により、新しい場所の一致がトリガーされます。たとえば、次のようになります。 (1) トライファイル (2)書き直す (3) エラーページ https の default_server の設定の詳細については、「https 用の「デフォルト」 nginx サーバーを適切に設定する」を参照してください。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Vue.js ドロップダウン コンポーネント付きテキストボックス
1. 作成する [テーブル名] (フィールド1、フィールド2、...) 値 (値1、値2、...) ...
セルの背景画像を設定でき、任意の GIF または JPEG 画像ファイルを使用できます。基本的な構文...
序文この記事は、サードパーティのモジュールをロードせずにNginxで処理できることのみに焦点を当てて...
この記事の例では、ドロップダウンメニューのカプセル化を実装するためのVue + Element UI...
1. テーブル内のフィールドの大文字と小文字の区別を設定するgorm クエリを使用する場合、MySQ...
1. ビューポートの概要モバイル ブラウザは通常、画面よりも幅の広い仮想ウィンドウにページをレンダリ...
位置 / { インデックス index.jsp; proxy_next_upstream http...
目次背景1. 思考分析2. ページ構成2.1 HTML レイヤー2.2 CSS レイヤー2.3 JS...
この記事では、MySQL データベースでよく使用される SQL ステートメントを例を使用して説明しま...
目次テーブル定義の自動増分 ID InnoDBシステムはrow_idを自動的に増加させるシドInno...
この記事のガイド: テーブル内のデータを削除するには、削除と切り捨ての 2 つの方法があります。TR...
MSIインストールパッケージを使用してインストールするご使用のオペレーティング システムに応じて、対...
1. 背景日常的なウェブサイトのメンテナンスでは、このような要件に頻繁に遭遇します。特定のクローラー...
1. ビジネスシナリオの紹介MySQLを使用する電子商取引システムがあるとします。大量のデータを保存...
この記事は主に、以前のインストール方法を使用して MySQL 5.7.14 をインストールするときに...