Chciałbym hostować 2 różne domeny na tym samym serwerze przy użyciu nginx. Przekierowałem obie domeny do tego hosta przez @ property. Chociaż konfiguruję 2 różne bloki serwerów, za każdym razem, gdy próbuję uzyskać dostęp do drugiej domeny, przekierowuje do pierwszej.
Oto moja konfiguracja.
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;
}
}
Jak mogę to naprawić? Dzięki.
server {}
blokach dyrektywy sever_name były znakami wieloznacznymi:.domain1.com
i.domain2.com
. Zmieniając je naserver_name www.domain1.com domain1.com;
iserver_name www.domain2.com domain2.com;
teraz ma właściwą stronę dla każdej witryny wyświetlającą się, gdy te adresy są używane..domain.com
. Jest to specjalna karta wieloznaczna nginx, która pasuje dodomain.com
i*.domain.com
. Zobacz: nginx.org/en/docs/http/server_names.html