Je souhaite héberger 2 domaines différents sur le même serveur à l'aide de nginx. J'ai redirigé les deux domaines vers cet hôte via @ property. Bien que je configure 2 blocs de serveur différents, chaque fois que j'essaie d'accéder à un deuxième domaine, il redirige le premier.
Voici ma config.
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;
}
}
Comment puis-je réparer cela? Merci.
Vos directives d'écoute sont fausses. Voir cette page: http://nginx.org/en/docs/http/server_names.html .
Ils devraient être
server {
listen 80;
server_name www.domain1.com;
root /var/www/domain1;
}
server {
listen 80;
server_name www.domain2.com;
root /var/www/domain2;
}
Remarque, je n'ai inclus que les lignes pertinentes. Tout le reste avait l'air correct mais je l'ai simplement supprimé pour plus de clarté. Pour le tester, vous pouvez essayer de servir d'abord un fichier texte à partir de chaque serveur avant de servir php. C'est pourquoi j'ai laissé la directive "racine" à l'intérieur.