1. ホーム
  2. nginx

[解決済み] Nginx 同一IPで異なるドメイン

2022-05-28 20:07:13

質問

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;
    }
}

これを修正するにはどうしたらいいでしょうか? ありがとうございます。

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

listen" ディレクティブが正しくありません。このページを参照してください。 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を提供する前に、まず各サーバーからテキストファイルを提供することを試した方がいいかもしれません。それが、'root' ディレクティブをそこに残した理由です。