155

複数のWebサイトにサービスを提供するnginxのインスタンスが実行されています。1 つ目は、サーバーの IP アドレスに関するステータス メッセージです。2 つ目は の管理コンソールadmin.domain.comです。これらはうまく機能します。現在、他のすべてのドメインリクエストを単一に送信したいと考えindex.phpています.ドメインとサブドメインがたくさんあり、それらすべてをnginx構成にリストすることは現実的ではありません.

これまでのところ、に設定しようとserver_nameしまし*たが、無効なワイルドカードとして失敗しました。*.*他のサーバーブロックを追加するまで機能しますが、それらと競合すると思います。

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

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

4

8 に答える 8

181

キャッチオール サーバー ブロックでリッスン オプションをこれに変更します。(追加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

于 2012-02-26T16:30:56.730 に答える
13

私にとっては、default_serverが機能していなかったとどういうわけか定義しています。私はそれを解決しました

server_name ~^.*$

すべての正規表現を使用します。

于 2016-04-08T14:43:39.813 に答える