13

でワイルドカードを使用していserver_nameます。example.com(*.example.com として設定された)のfoo.comすべてのサブドメインを にリダイレクトしたいxyz.example.com

次のような構成があります

server {
        listen          80;
        server_name     *.example.com;
        location / {
            proxy_pass      http://$1.foo.com;
        }
}

に来るリクエストを変更したくありませんxyz.example.com

4

2 に答える 2

11

少なくとも 2 つのサーバー ブロックが必要でありnginx、より具体的なサーバー ブロックを選択してリクエストを処理します。詳細については、このドキュメントを参照してください。

xyz.example.com次のようなサーバーブロックが必要になります。

server {
    listen      80;
    server_name xyz.example.com;

    location / {
        proxy_pass http://$1.foo.com;
    }
}

次に、default_serverまたは次のようなワイルドカード サーバーのいずれかです。

server {
    listen 80;
    server_name *.example.com;
    return http://foo.com/;
}

または:

server {
    listen 80 default_server;
    return http://foo.com/;
}
于 2016-01-27T13:51:59.287 に答える