同一 IP 上的不同域名

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

这是我的配置。

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


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.example:80;
access_log  /var/log/nginx/host.domain2.access.log  main;
root /var/www/domain2;
server_name www.domain2.example;


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

我该怎么补救?

128757 次浏览

您的“听”指令是错误的。请参阅此页: http://nginx.org/en/docs/http/server_names.html

应该是的

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


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

注意,我只包括了相关的行。其他的看起来都没问题,但为了清楚起见,我把它删掉了。要测试它,您可能需要在实际服务 PHP 之前首先尝试从每个服务器提供一个文本文件。这就是为什么我把“ root”指令留在那里的原因。