nginx の default_server ディレクティブは、server_name と一致しないリクエストを処理するためのデフォルト サーバーを定義できます。明示的に定義されていない場合は、最初に定義されたサーバーが default_server として選択されます。 上記のルールを理解した後、バインドされていないドメイン名のアクセスまたは直接 IP アクセスをキャプチャし、403 ページにリダイレクトできます。 1. nginx 暗黙のデフォルトサーバー http { # デフォルトサーバーが明示的に宣言されていない場合は、最初のサーバーが暗黙的にデフォルトサーバーとして設定されます サーバー{ 聞く 80; server_name _; # _ はポイントではありません __ も OK です ___ 403 を返すこともできます; # 403 禁止 } サーバー{ 聞く 80; サーバー名 www.a.com; ... } サーバー{ 聞く 80; サーバー名 www.b.com; ... } } 多くの人がコピー&ペーストして、server_name を '_' に設定する必要があるという考えを広めていますが、実際にはそれは何の関係もありません。 「_」は、ビジネスドメイン名とは関係のないリクエスト回復サービスです。当社のオンラインビジネスがすべて明確なビジネスドメイン名でアクセスされている場合、ワイルドカード解決によって発生した一部の非ビジネスドメイン名または IP アクセスは、このサーバーによってリサイクルされます。 デフォルト サーバーが明示的に定義されていない場合、nginx は最初に構成されたサーバーをデフォルト サーバーとして使用します。つまり、リクエストがどの server_name とも一致しない場合、このサーバーがリクエストを処理します。そのため、IP アドレスを使用して直接アクセスすると、ここで定義された最初のサーバーに渡されて処理され、403 禁止になります。 2. デフォルトサーバーを明示的に定義する http { サーバー{ 聞く 80; サーバー名 www.a.com; ... } サーバー{ 聞く 80; サーバー名 www.b.com; ... } # デフォルトサーバーの定義を表示する サーバー{ 80 default_server をリッスンします。 サーバー名_; 403 を返します。# 403 禁止 } } 仮想ホストまたは複数のサービスを構成する場合、複数のサーバー構成ファイルが存在するため、デフォルト サーバーを明示的に指定することをお勧めします。暗黙的な方法を使用して最初に読み込まれたサーバーをデフォルト サーバーとして選択すると、常に最初に読み込まれるサーバーを確認する必要があり、リスクが生じます... 3. server_name を ip として直接指定します (ip アクセスのみを禁止できます) http { サーバー{ 聞く 80; サーバー名 www.a.com; ... } サーバー{ 聞く 80; サーバー名 www.b.com; ... } # ip server_nameを直接指定 サーバー{ 聞く 80; サーバー名 xxx.xxx.xxx.xxx; 403 を返します。# 403 禁止 } } 上記の 3 つの方法はすべて IP による直接アクセスを禁止できますが、1 と 2 ではバインドされていないドメイン名によるアクセスも禁止できます (たとえば、プライマリ ドメイン名を解決した場合)。 注: nginx バッチが設定 conf をロードする場合、それらは ASCII 順でロードされ、server_a.conf、server_b.conf、server_c.conf の順にロードされます。default_server が定義されていない場合、ドメイン名/IP にバインドされていないリクエストを処理するためのデフォルト サーバーとして server_a が使用されます。 nginx の default_server の定義とマッチングルールの詳細な説明については、これで終わりです。より関連性の高い nginx default_server マッチングルールについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Vue Element Sortablejs を使用してテーブル列をドラッグする詳細な説明
序文データ型変換とは何ですか?フォームまたはプロンプトを使用して取得されるデフォルトのデータ型は文字...
シナリオ最大 10000 要素のリストを正しくレンダリングする方法。無限ドロップダウン読み込みテクノ...
このキーワードどのオブジェクトが関数を呼び出しますか? また、関数内の this はどのオブジェクト...
序文最近、プロジェクトを構築しているときに、リクエストのカプセル化について考え、どのようにカプセル化...
Ubuntu では、ショートカット キーでタッチパッドをオフにできない状況によく遭遇します。この問題...
フォームのフロントエンド レイアウトでは、テキスト ボックスのプロンプト テキストを両端に揃える必要...
目次1. インストール前の準備、インストールパッケージのダウンロード1 インストールの準備2 インス...
ファイルとは何ですか?すべてのファイルは実際には文字列のストリームですが、適切な解析方法を使用すると...
目次レプリケーション ロジックの簡単な概要:遅延の原因と解決策〇メインデータベースへの頻繁なDMLリ...
jQuery の登場により、DOM の操作効率が大幅に向上し、開発がより高いレベルに引き上げられまし...
目次1. データベースのマスター/スレーブ分類: 2. MySQL マスタースレーブの紹介3. マス...
mysql のデフォルトのストレージ ディレクトリは/var/lib/mysql/です。以下は、デフ...
MySQL トランザクション分離レベルを表示する mysql> '%isolation...
@Font-face 基本紹介: @font-face は、Web ページにカスタム フォントを表示...
この記事では、MySQL の ROUND 関数を使用した丸め操作の落とし穴を例を使って説明します。ご...