1. ホーム
  2. nginx

[解決済み] nginx server_name ワイルドカードまたはキャッチオール

2022-05-02 15:07:03

質問

nginxのインスタンスが稼働しており、いくつかのウェブサイトを配信しています。1つ目は、サーバーの IP アドレスにステータスメッセージを表示するものです。2つ目は管理コンソールで admin.domain.com . これらは素晴らしい働きをします。さて、他のすべてのドメインのリクエストは、1つの index.php - ドメインやサブドメインがたくさんあり、nginxの設定にすべてを列挙するのは非現実的です。

今までのところ server_name から * が、無効なワイルドカードとして失敗しました。 *.* は、他のサーバーブロックを追加するまでは動作しますが、その後、それらと衝突するのだと思います。

他のサイトが定義された後に、nginxでキャッチオールサーバーブロックを実行する方法はありますか?

注:私はスパマーではありません。これらは有用なコンテンツを持つ本物のサイトで、データベースから同じCMSで動いているだけです。

どのように解決するのか?

キャッチオール・サーバー・ブロックの listen オプションをこれに変更します。 default_server ) これは、あなたのすべての非定義接続(指定されたポート上)を取ります。

listen       80  default_server;

が存在しない場合、すべてをindex.phpにプッシュしたい場合。

try_files                       $uri /$uri /index.php;

あたり 文献 , It can also be set explicitly which server should be default, with the **default_server** parameter in the listen directive