nginx répertoire des sites disponibles manquants

190

J'ai installé Nginx sur Centos 6 et j'essaie de configurer des hôtes virtuels. Le problème que j'ai est que je n'arrive pas à trouver le /etc/nginx/sites-availablerépertoire.

Dois-je faire quelque chose pour le créer? Je sais que Nginx est opérationnel car je peux y accéder.

Fr0ntSight
la source
Si vous voulez diviser un gros fichier de configuration en plus petits, vous pouvez utiliser mon script pour le diviser: stackoverflow.com/a/38635284/1069083
rubo77

Réponses:

354

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

Créer /etc/nginx/sites-availableet /etc/nginx/sites-enabledpuis modifiez l' httpintérieur du bloc /etc/nginx/nginx.confet ajoutez cette ligne

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

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

Mohammad AbuShady
la source
23
Les parents de RedHat (ie Fedora et Centos) n'ont pas cette fonctionnalité prête à l'emploi comme Debian / Ubuntu. C'est facile à copier, comme l'a dit @Mohammad, mais ne pas avoir de bons paramètres par défaut est déroutant pour les nouveaux arrivants.
MGP
36
Dieu, je ne peux pas dire combien de recherches j'ai faites pour comprendre cela. 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 nginx les réfèrent ... vous faisant vous demander si votre nginx a été installé correctement ou non.
so_mv
1
Cool merci, que diriez-vous du lien symbolique? Ma syntaxe est-elle correcte? Il ne semble pas être trouvé par l'instruction include.
zéros et des uns
7
Je l'ai corrigé, commencé à neuf et créé un lien symbolique comme ceci: je sudo ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled/test.confne sais pas pourquoi le chemin complet a fait une différence: /
zeros-and-ones
1
Merci beaucoup. Construit nginx à partir des sources et ne s'est pas rendu compte qu'ubuntu l'a fait.
Sean Norwood
66

Si vous préférez une approche plus directe, une approche qui ne gêne PAS les liens symboliques entre /etc/nginx/sites-availableet /etc/nginx/sites-enabled, procédez comme 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;Ceci indique à nginx d'extraire tous les fichiers du conf.drépertoire qui se terminent par .conf. (Je sais: c'est bizarre qu'un répertoire puisse contenir un ..)
  4. Créez le conf.drépertoire s'il n'existe pas déjà (selon le chemin à l'étape 3). Assurez-vous de lui donner les bonnes autorisations / propriété. Racine probable ou www-data.
  5. Déplacez ou copiez vos fichiers de configuration séparés (comme vous l'avez fait /etc/nginx/sites-available) dans le répertoire conf.d.
  6. Rechargez ou redémarrez nginx.
  7. Mangez un cornet de crème glacée.

Tous les .conffichiers que vous mettez dans le conf.drépertoire à partir de maintenant deviendront actifs tant que vous rechargerez / redémarrerez nginx après.

Remarque: vous pouvez utiliser la méthode conf.det sites-enabled+ sites-availablesimultanément si vous le souhaitez. J'aime tester sur ma dev box en utilisant conf.d. Se sent plus rapide que la symlinking et la dissymétrie.

coude
la source
13
L'intérêt du "désordre" de liaison symbolique est que vous pouvez conserver 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 souhaitez désactiver un site qui, à mon avis, n'est pas moins compliqué que de supprimer facilement un lien symbolique.
bviktor le
@bviktor je vous entends. J'utilise en fait les deux manières. Je viens de trouver plus fastidieux [lors du test des configurations] de rebondir entre les répertoires disponibles et activés pour les sites. Dans mon environnement de production, je prévois d'utiliser des liens symboliques.
elbowlobstercowstand
1
Oui, je suis d'accord, taper ln -s ../sites-available/...est plutôt fastidieux pour tester rapidement des trucs, mais à long terme, c'est pratique et plus facile à gérer :)
bviktor
@bviktor Tellement reconnaissant pour la possibilité de pouvoir appuyer sur l'onglet dans le terminal lors de l'écriture d'un nom de chemin et de regarder l'auto-complétion faire son truc. Je ne savais pas à ce sujet pendant un moment jusqu'à ce que je regarde une vidéo avec quelqu'un qui l'utilisait. Je pensais qu'ils tapaient à 300 mots par minute! Puis j'ai compris. :)
elbowlobstercowstand
12
@bvktor Seuls les sites avec l'extension .conf sont inclus. Si vous ne voulez pas qu'un site soit activé, ajoutez simplement l'extension .disabled au fichier de configuration du site. C'est la convention standard dans CentOS / Apache et elle s'appliquera également à Nginx.
SenG
0

J'ai essayé sudo apt installer nginx-full. Vous obtiendrez tous les packages requis.

Amit Shrestha
la source