nginx で正規表現を使用してワイルドカードドメイン名を自動的に一致させる方法

nginx で正規表現を使用してワイルドカードドメイン名を自動的に一致させる方法

Nginxは正規表現を使用して、ワイルドカードドメイン名をディレクトリに自動的に一致させます。

Nginx を使用すると、仮想ホストの機能を実現し、複数の URL をバインドすることができます。
通常、プライマリ ドメイン名は構成でハードコードされているため、一致するものを追加する場合は手動で追加する必要があります。

基本的な書き方

最も基本的な書き方はserver{
聞く 80;
サーバー名 www.a.com;
ルート /html/a;
…
}

サーバ{
聞く 80;
サーバー名 www.b.com;
ルート /html/b;
…
}

正規表現

ドメイン名がバインドされると、対応するディレクトリに自動的にマッチングされるため、ドメイン名ごとに設定を 1 つずつ記述する必要はありません。
一致するディレクトリは、html/ドメイン名/セカンダリドメイン名です。たとえば、www.baidu.com は baidu.com/www ディレクトリと一致します。

サーバー{
 聞く 80;
 # $subdomain は第 2 レベル以上のドメイン名と一致します # $domain は第 1 レベルドメイン名と一致します # $tld はルートノード名と一致します server_name ~^((?<subdomain>.*)\.)?(?<domain>[^.]+)\.(?<tld>[a-zA-Z]+)$;

 #$subdomainがない場合はwwwにジャンプします
 ($subdomain = "") の場合 {
  # $subdomain を "_" に設定;
  $subdomain を "www" に設定します。
  301 $scheme://www.$domain.$tld$request_uri を返します。
 }

 ルート /usr/share/nginx/html/${ドメイン}.${tld}/${サブドメイン};
}

他の

nginx の一致順序については多くの記事があるので、詳細には触れません。
正規表現は一致の優先順位が最も低いため、他の一致が見つからない場合にのみ一致し、他の完全一致に影響を与えることを心配する必要はありません。

ほとんどの人は、一致するドメイン名をそれほど多くは持っていません。その代わりに、悪意のあるドメイン名ポインタをブロックしたいと考えています。

ただし、テスト時に実行中の Web ページに影響を与えないように、ホストに IP ドメイン名レコードを追加し、存在しないドメイン名をテストに使用すると、現時点ではより便利です。

要約する

nginx が正規表現を使用してワイルドカード ドメイン名をディレクトリに自動的に一致させる方法については、これで終わりです。nginx が正規表現を使用してワイルドカード ドメイン名をディレクトリに一致させる方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Nginx の if 文と正規表現を組み合わせて文字列を切り捨てる
  • Nginx 正規表現の詳細な説明
  • nginx ロケーション設定の正規表現例の詳細な説明
  • Nginx 擬似静的書き換え通常リソースの概要
  • Nginx の書き換え正規マッチング書き換え方法の例
  • nginx 設定の場所の概要の場所の通常の書き込みと書き換えルールの書き込み
  • Pythonによるnginxアクセスログの定期分析
  • nginx を使用して正規表現で指定された URL リクエストを傍受する方法
  • Nginx 正規表現関連のパラメータとルールの紹介

<<:  MySQL 最適化のヒント: 重複削除の実装方法の分析 [数百万のデータ]

>>:  Mybatisの各SQL文の実行時間の統計

ブログ    

推薦する

HTML シンプルショッピング数量アプレット

この記事では、参考までにシンプルなHTMLショッピング数量アプレットを紹介します。具体的な内容は次の...

JavaScript を使用して動的な QQ 登録ページを作成する

目次1. はじめに1. 基本レイアウト2. 写真を自動的に切り替える3. コンテンツを追加する4. ...

Linux で MySQL スケジュールタスクを実装する方法

前提: ストアド プロシージャは、毎日午後 10 時から午前 5 時まで 10 分ごとに実行されます...

NavicatでMySQLビッグデータをインポートする際のエラーの解決方法

Navicat がエクスポートしたデータはインポートできません。最後に、MySQLコマンドのインポー...

要素のel-tree複数選択ツリー(チェックボックス)親子ノードの関連付けが関連付けられていません

属性チェック-厳密公式ドキュメントでは、チェックボックスが表示されるときに親項目と子項目を互いに関連...

静的ウェブサイトをRSSに変換するツール

<br /> この記事は allwebdesignresources.com から Ra...

Winにmysqlをインストールする詳細な手順

この記事では、参考までにWinにmysqlをインストールする詳細な手順を紹介します。具体的な内容は次...

ブラウザの互換モードでボタン内のテキストが垂直方向に中央揃えにならない問題について簡単に説明します。

XML/HTML コードコンテンツをクリップボードにコピー<ボタンスタイル= "カ...

内部 IP アクセスのみを許可する Nginx プロキシ設定を追加する方法

位置 / { インデックス index.jsp; proxy_next_upstream http...

Docker で Let's Encrypt から永久無料 SSL 証明書を取得する方法

1. 原因公式の cerbot は面倒すぎます。野生の成長よりもさらに悪い acme.sh の使用は...

Winows Server 2019 アクティベーション コードとボリューム ライセンス エディション KMS インストール キー GVLK

最近、社内文書の整理とファイルサーバーの構成を予定しています。以前はサーバー2003を使い慣れていま...

Docker に fastdfs イメージをインストールする際の注意事項

1. Docker環境を準備する2. fastdfsイメージを検索する 3. イメージをプルするdo...

Vue + 要素の動的複数ヘッダーと動的スロット

目次1. 需要2. 効果3. すべてのコード1. 需要ユーザーが自分でテーブルを構成できるようになり...

MySQL sql99構文の内部結合と非等価結合の詳細な説明

#事例: 従業員の給与水準を照会する 選択 給与、等級 から 従業員 参加する ジョブグレード g ...

MySQL マスタースレーブレプリケーションの原理と実践の詳細な説明

目次導入効果原理形状練習するこの記事では、例を使用して、MySQL マスター/スレーブ レプリケーシ...