Nginx不同的域在相同的IP

我想用nginx在同一台服务器上托pipe2个不同的域。 我通过@属性将这两个域redirect到了这个主机。 虽然我configuration了2个不同的服务器模块,但每当我尝试访问第二个域时,它都会redirect到第一个域。

这是我的configuration。

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

我怎样才能解决这个问题? 谢谢。

你的“听”指令是错误的。 看到这个页面: 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; } 

请注意,我只包括相关的行。 其他一切看起来不错,但我只是删除它清晰。 为了testing它,你可能想尝试在实际服务php之前先从每个服务器提供一个文本文件。 这就是为什么我在那里留下“root”指令的原因。