216 votes

nginx manque le répertoire sites-available

J'ai installé Nginx sur Centos 6 et j'essaie de mettre en place des hôtes virtuels. Le problème que j'ai, c'est que je n'arrive pas à trouver l'option /etc/nginx/sites-available répertoire.

Y a-t-il quelque chose que je doive faire pour le créer ? Je sais que Nginx est opérationnel car je peux y naviguer.

0 votes

Si vous voulez diviser un grand fichier de configuration en plusieurs petits, vous pouvez utiliser mon script pour le diviser : stackoverflow.com/a/38635284/1069083

419voto

Mohammad AbuShady Points 7143

Eh bien, je pense que nginx en lui-même n'a pas cela dans sa configuration, parce que le paquet maintenu par Ubuntu le fait comme une convention pour imiter la configuration apache de Debian. Vous pourriez le créer vous-même si vous vouliez imiter la même configuration.

Créer /etc/nginx/sites-available y /etc/nginx/sites-enabled puis modifiez le http bloc à l'intérieur /etc/nginx/nginx.conf et ajoutez cette ligne

include /etc/nginx/sites-enabled/*;

Bien sûr, tous les fichiers seront à l'intérieur sites-available et vous créerez un lien symbolique pour eux à l'intérieur de sites-enabled pour ceux que vous voulez activer.

31 votes

Les systèmes apparentés à RedHat (c'est-à-dire Fedora et Centos) ne disposent pas de cette fonctionnalité comme Debian/Ubuntu. Il est facile de copier, comme l'a dit @Mohammad, mais le fait de ne pas avoir de belles valeurs par défaut est déroutant pour les nouveaux arrivants.

49 votes

Mon Dieu, je ne peux pas dire combien de recherches j'ai faites pour comprendre ça. J'utilise Amazon Linux AMI version 2014.03. Ces répertoires ne sont pas créés automatiquement si vous installez nginx à partir des fichiers rpm (que ce soit nginx 1.6.2 ou nginx 1.7.5) mais de nombreux exemples de configuration de nginx y font référence... ce qui vous fait vous demander si votre nginx a été installé correctement ou non.

0 votes

J'ai essayé cela sur mon AMI Amazon Linux, mais cela ne fonctionne pas. Dois-je faire autre chose ?

75voto

Si vous préférez une approche plus directe, une approche qui n'interfère PAS avec les liens symboliques entre /etc/nginx/sites-available y /etc/nginx/sites-enabled faites ce qui suit :

  1. Localisez votre fichier nginx.conf. Probablement à /etc/nginx/nginx.conf
  2. Trouvez le bloc http.
  3. Quelque part dans le bloc http, écrivez include /etc/nginx/conf.d/*.conf; Cela indique à nginx d'extraire tous les fichiers dans le répertoire conf.d qui se terminent par .conf . (Je sais : c'est bizarre qu'un répertoire puisse avoir un . en elle.)
  4. Créer le conf.d s'il n'existe pas déjà (selon le chemin de l'étape 3). Assurez-vous de lui donner les bonnes permissions/propriété. Probablement Root ou www-data.
  5. Déplacez ou copiez vos fichiers de configuration séparés (comme vous l'avez fait dans /etc/nginx/sites-available ) dans le répertoire conf.d .
  6. Rechargez ou redémarrez nginx.
  7. Mangez un cône de glace.

Tout .conf que vous mettez dans le conf.d à partir de maintenant sera actif tant que vous rechargerez/redémarrez nginx après.

Remarque : vous pouvez utiliser le conf.d y sites-enabled + sites-available en même temps si vous le souhaitez. J'aime tester sur ma boîte de développement en utilisant conf.d . C'est plus rapide que le lien symbolique et le désliage.

18 votes

L'intérêt du "désordre" des liens symboliques est que vous pouvez préserver les fichiers de configuration tout en désactivant très facilement les hôtes virtuels. Si vous utilisez votre approche, vous devez déplacer les fichiers hors de conf.d lorsque vous voulez désactiver un site, ce qui, à mon avis, n'est pas moins compliqué que de supprimer commodément un lien symbolique.

0 votes

@bviktor Je vous comprends. En fait, j'utilise les deux méthodes. Je trouve simplement plus fastidieux [lors des tests de configuration] de faire des allers-retours entre les répertoires sites-available et sites-enabled. Dans mon environnement de production, je prévois d'utiliser les liens symboliques.

3 votes

Oui, je suis d'accord, taper ln -s ../sites-available/... est plutôt fastidieux lorsqu'on teste rapidement des choses, mais à long terme, c'est pratique et plus facile à gérer :)

-4voto

Amit Shrestha Points 33

J'ai essayé sudo apt install nginx-full. Vous obtiendrez tous les paquets nécessaires.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X