Nginx同一IP上的不同域

Nginx同一IP上的不同域,nginx,dns,Nginx,Dns,我想使用nginx在同一台服务器上托管两个不同的域。 我通过@property将两个域重定向到此主机。尽管我配置了两个不同的服务器块,但每当我尝试访问第二个域时,它都会重定向到第一个域 这是我的配置 server { listen www.domain1.com:80; access_log /var/log/nginx/host.domain1.access.log main; root /var/www/domain1; server_name

我想使用nginx在同一台服务器上托管两个不同的域。 我通过@property将两个域重定向到此主机。尽管我配置了两个不同的服务器块,但每当我尝试访问第二个域时,它都会重定向到第一个域

这是我的配置

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;
    }
}
我怎样才能解决这个问题? 谢谢。

您的“倾听”指令是错误的。请参阅此页:

他们应该是

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”指令留在那里

这个给我修好了。问题似乎是在我的
服务器{}
块中,服务器名称指令都是通配符:
.domain1.com
.domain2.com
。将其更改为
服务器名称www.domain1.com domain1.com
服务器名称www.domain2.com domain2.com现在每个站点都有一个正确的页面,显示这些地址的使用时间。我知道这是在挖掘一条古老的评论。但我假设这两个服务器块可能位于站点中的单独配置文件中,这完全取决于您想要如何构造配置。我倾向于每个真实域有一个文件。每个都可能包含多个服务器块。您确实不想这样做。选择www.domain.com或domain.com并将其中一个重定向到另一个。在两个不同的地址拥有相同的内容被视为垃圾邮件,会严重损害您的搜索排名。您也可以只使用
.domain.com
。它是一个特殊的nginx通配符,匹配
domain.com
*.domain.com
。见: