nginx はリクエストを受信すると、まず server_name でサーバーを照合し、次にサーバー内の場所を使用して照合を続行します。 server_name に一致 nginx では、server_name によって、リクエストを受信したときにどのサーバーが使用されるかが決まります。nginx は、リクエスト ヘッダーの Host フィールドを使用して server_name と照合します。server_name を定義するときは、フル ネーム、ワイルドカード名、または正規表現名を使用できます。照合順序は次のとおりです。
一致するものが見つからない場合は、default_server が処理に使用されます。定義されていない場合は、最初に定義されたものが使用されます。例として 3 つの単純なサーバーを使用し、ポート 80 を listen し、server_name をそれぞれ *.org、*.net、*.com に設定します。 サーバー{ 聞く 80; サーバー名 example.org www.example.org; 401 を返します。 } サーバー{ 聞く 80; サーバー名 example.net www.example.net; 402 を返します。 } サーバー{ 聞く 80; サーバー名 example.com www.example.com; 403 を返します。 } 上記の設定では、デフォルト サーバーは最初のサーバーです。存在しないサーバーにアクセスすると、401 が返されます。ただし、default_server を使用して手動でデフォルト ホストを設定できます。default_server は、次のように listen フィールドで設定されます。 サーバー{ 80 default_server をリッスンします。 サーバー名 example.net www.example.net; } 再度マッチングを行った際に、一致するものが見つからない場合は、このサーバーが使用されます。 アクセスが拒否されました ホスト フィールドのないリクエストを禁止する場合は、次のサーバーを定義できます。 サーバー{ 聞く 80; サーバー名 ""; 444を返します。 } server_name は空の文字列として定義されます。Host フィールドが空であるか存在しない場合は、このサーバーが一致し、404 ステータス コードが返されます。
存在しないホストへのアクセスを禁止したい場合は、次のように定義できます。 サーバー{ 80 default_server をリッスンします。 サーバー名_; 444を返します。 } _ には特別な意味はありません。ドメイン名は _ 内には表示されないため、実際のドメイン名と同じにはなりません。他の不正な文字についても同様です。 IPとserver_nameの両方に一致 次に、異なるリスニング IP と異なる server_name の混在を処理する方法を見てみましょう。 サーバー{ 192.168.1.1:80 を聴く; サーバー名 example.org www.example.org; } サーバー{ 192.168.1.1:80 を聴く; サーバー名 example.net www.example.net; } サーバー{ 192.168.1.2:80 を聴く; サーバー名 example.com www.example.com; } この設定では、nginx は最初に IP を照合し、次に server_name を照合します。一致する server_name がない場合、デフォルトのサーバーが使用されます。たとえば、ドメイン名 www.example.com のリクエストが 192.168.1.1:80 から送信され、192.168.1.1:80 でリッスンしているサーバーが 2 つしかなく、どちらも www.example.com に一致しない場合は、2 つのサーバーのデフォルトのホストが使用されます。リスナーの定義に default_server が使用されていないため、デフォルトは最初のサーバー www.example.org です。もちろん、default_server を定義することもできます。 サーバー{ 192.168.1.1:80 を聴く; サーバー名 example.org www.example.org; } サーバー{ 192.168.1.1:80 default_server をリッスンします。 サーバー名 example.net www.example.net; } サーバー{ 192.168.1.2:80 default_server をリッスンします。 サーバー名 example.com www.example.com; } 一致する場所 nginx はサーバーに一致した後、場所を介してリクエストの処理を続行します。次に例を示します。 サーバー{ 172.17.0.3:80を聴く; サーバー名_; 位置 / { 401 を返します。 } 場所 ~*\.(gif|jpg|png)$ { 402 を返します。 } 場所 ~*\.(gif|jpg|png)$ { 404 を返します。 } 場所 /api { 403 を返します。 } } Nginx は最初にすべての場所でプレフィックスを検索して一致させます。プレフィックスを一致させた後、正規表現で定義された場所を順番に一致させます。一致した場合は終了します。一致しない場合は、前にプレフィックスと一致した場所を使用して処理します。以下は、特定の一致の例です。
参照する
要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
<<: MySQL マスターとスレーブの不整合とその解決策の詳細な説明
>>: {{ }} で関数を直接使用する WeChat アプレットの例
以前、https://www.jb51.net/article/205922.htm で、Docke...
CentOS 7にPostgreSQL 11をインストールする PostgreSQL: 世界で最も先...
Docker はますます成熟し、その機能もますます強力になっています。 Docker Stack を...
序文:私は友人のプロジェクトのバグを修正するのを手伝ったのでこれを書きました。この関数を書くのは初め...
目次1. オブジェクトの変更検出2. オブジェクトに関する質問配列変更検出3.1 背景3.2 実装I...
目次質問1件2つの方法3 実験結果と考察質問1件ご存知のとおり、 Pycharm 、 IDLE 、 ...
序文会社でのインターンシップ中、フロントエンド開発にはvue+element-uiフレームワークを使...
目次序文React Context の初見コンテキストの使い方コンテキストを直接取得できるいくつかの...
概要リレーショナル データベースでは、インデックスは、データベース テーブル内の 1 つ以上の列の値...
最新の HTML 標準には、レイアウトを計算するために使用できる calc CSS 式があります。し...
目次1. 連結() 2. 結合() 3. プッシュ() 5. シフト() 6. シフト解除() 7....
Elasticsearchは現在非常に人気があり、多くの企業が利用しているため、esを知らないと軽蔑...
主キー:キーワード: 主キー機能: null にすることはできず、一意である必要があります。主キーの...
本日の投稿では、Web デザインで使用される円形要素の優れた例をいくつか挙げ、美しい丸いボタン、メニ...
[nslookup とは?] 】 nslookup コマンドは、Linux で非常によく使用されるネ...