同じIP上のNginx異なるドメイン


127

nginxを使用して、同じサーバーで2つの異なるドメインをホストしたいと思います。@プロパティを介して両方のドメインをこのホストにリダイレクトしました。2つの異なるサーバーブロックを構成していますが、2番目のドメインにアクセスしようとすると、最初のドメインにリダイレクトされます。

これが私の設定です。

server {
    listen      www.domain1.com:80;
    access_log  /var/log/nginx/host.domain1.access.log  main;
    root /var/www/domain1;
    server_name www.domain1.com;

    location ~ \.php$ {
        # Security: must set cgi.fixpathinfo to 0 in php.ini!
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME         $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        include /etc/nginx/fastcgi_params;
    }
}

server {
    listen       www.domain2.com:80;
    access_log  /var/log/nginx/host.domain2.access.log  main;
    root /var/www/domain2;
    server_name www.domain2.com;

    location ~ \.php$ {
        # Security: must set cgi.fixpathinfo to 0 in php.ini!
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME         $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        include /etc/nginx/fastcgi_params;
    }
}

どうすれば修正できますか?ありがとう。

回答:


163

「リッスン」ディレクティブが間違っています。このページを参照してください:http : //nginx.org/en/docs/http/server_names.html

彼らはする必要があります

server {
    listen      80;
    server_name www.domain1.com;
    root /var/www/domain1;
}

server {
    listen       80;
    server_name www.domain2.com;
    root /var/www/domain2;
}

注、私は関連する行のみを含めました。他はすべて問題ないように見えましたが、明確にするために削除しました。これをテストするには、実際にphpを提供する前に、まず各サーバーからテキストファイルを提供してみてください。そのため、私は「ルート」ディレクティブをそこに残しました。


9
これで解決しました。問題は、私の両方のserver {}ブロックで、sever_nameディレクティブがワイルドカード.domain1.comであったこと.domain2.comでした。それらをに変更するとserver_name www.domain1.com domain1.com;server_name www.domain2.com domain2.com;それらのアドレスが使用されるときに表示される各サイトの正しいページが表示されます。
スティーブHHH

4
私はこれが古くからのコメントを引き起こしていることを知っています。しかし、私はこれらの2つのサーバーブロックがサイト対応の別の構成ファイルにある可能性があると想定しています/?
labarna 2013年

3
絶対に、それはあなたがあなたの設定をどのように構成したいかに依存します。実際のドメインごとに1つのファイルを作成する傾向があります。それぞれに複数のサーバーブロックが含まれる場合があります。
被告人2013年

5
あなたは本当にそれをしたくありません。www.domain.comまたはdomain.comを選択して、一方を他方にリダイレクトします。2つの異なるアドレスに同じコンテンツがあるとスパム行為と見なされ、検索ランキングに大きな影響を与える可能性があります。
被告

4
そのまま使用することもできます.domain.com。これは、domain.comおよびに一致する特別なnginxワイルドカードです*.domain.com。参照:nginx.org/en/docs/http/server_names.html
aychedee
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.