3 votes

Où définir la directive racine dans nginx.conf

J'ai une question concernant la configuration de nginx sur un serveur gérant différents hôtes virtuels. Je suis un peu confus quant à l'endroit où le root devrait être. J'ai vu les deux possibilités suivantes.

Variante A

server {
listen          80;
server_name     www.site.com;
access_log      /var/log/nginx/www.site.com.access.log main;
root            /var/www/$server_name/htdocs;

location / {
   index index.html;
   }
}

ou l'autre

Variante B

server {
listen          80;
server_name     www.site.com;
access_log      /var/log/nginx/www.site.com.access.log main;

location / {
   root         /var/www/$server_name/htdocs;
   index        index.html;
   }
}

Je suis un peu confus si les deux variantes sont égales. Pour les différents serveurs virtuels, j'ai prévu d'avoir des serveurs individuels .conf avec des fichiers différents server_name et root dans les directives de /etc/nginx/sites-available . Pour activer un serveur virtuel, il faudrait créer un lien symbolique vers le fichier de configuration dans le dossier de l'utilisateur. /etc/nginx/sites-enabled . Ou bien vous stockez le fichier de configuration dans /var/www/$server_name pour qu'il soit "proche" des données www ?

Donc, pour résumer, j'ai deux questions :
1. Laquelle des deux variantes de la nginx.conf est meilleur pour la configuration de plusieurs serveurs virtuels et pourquoi ?
2. Où stockez-vous les fichiers de configuration pour chaque serveur virtuel ?

Gracias.

3voto

Schotime Points 6067

La variante A est la bonne façon de procéder. Nginx n'utilisera jamais qu'un seul bloc d'emplacement, donc si vous définissez la racine dans un emplacement, elle ne sera disponible que dans cet emplacement. Cela conduit presque toujours à la duplication des directives root ou des chemins de fichiers, ce qui n'est pas bon.

Si vous le définissez dans le bloc serveur, il est toujours hérité par les blocs d'emplacement, de sorte qu'il sera toujours disponible dans la variable $document_root, évitant ainsi la duplication des chemins de fichiers.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X