Je suis nouveau dans Nginx et j'essaie de faire fonctionner les sous-domaines.
Ce que je voudrais faire, c'est prendre mon domaine (appelons-le example.com
) et ajouter:
sub1.example.com
,sub2.example.com
et aussiwww.example.com
disponible.Je sais comment faire cela avec Apache, mais Nginx est un vrai gratte à la tête.
Je suis sous Debian 6.
Mon actuel /etc/nginx/sites-enabled/example.com:
server {
server_name www.example.com example.com;
access_log /srv/www/www.example.com/logs/access.log;
error_log /srv/www/www.example.com/logs/error.log;
root /srv/www/www.example.com/public_html;
location / {
index index.html index.htm;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/www.example.com/public_html$fastcgi_script_name;
}
}
Il travaille pour servir exemple.com et www.example.com.
J'ai essayé d'ajouter un deuxième bloc de serveur dans le même fichier comme:
server {
server_name www.example.com example.com;
access_log /srv/www/www.example.com/logs/access.log;
error_log /srv/www/www.example.com/logs/error.log;
root /srv/www/www.example.com/public_html;
server {
server_name sub1.example.com;
access_log /srv/www/example.com/logs/sub1-access.log;
error_log /srv/www/example.com/logs/sub1-error.log;
root /srv/www/example.com/sub1;
}
location / {
index index.html index.htm;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/www.example.com/public_html$fastcgi_script_name;
}
}
Pas de chance. Des idées? J'apprécierais tout commentaire.
L'erreur est de mettre un bloc de serveur à l'intérieur d'un bloc de serveur, vous devez fermer le bloc de serveur principal, puis en ouvrir un nouveau pour les sous-domaines.
server {
server_name example.com;
# the rest of the config
}
server {
server_name sub1.example.com;
# sub1 config
}
server {
server_name sub2.example.com;
# sub2 config
}
Vous devez juste ajouter la ligne suivante à la place de votre nom de serveur
server_name xyz.com *.xyz.com;
Et redémarrez Nginx. C'est tout.
Vous devrez créer un autre fichier de configuration nginx avec un serverblock pour votre sous-domaine. Ainsi:
/etc/nginx/sites-enabled/subdomain.example.com