Avec l’installation de base de nginx, votre dossier sites-available
Ne contient qu’un seul fichier: default
comment fonctionne le dossier sites-available
et comment l'utiliser pour héberger plusieurs sites Web (distincts)?
Juste pour ajouter une autre approche, vous pouvez utiliser un fichier séparé pour chaque domaine virtuel ou site que vous hébergez. Vous pouvez utiliser une copie de default comme point de départ pour chacun et personnaliser pour chaque site.
Créez ensuite des liens symboliques dans les sites activés. De cette façon, vous pouvez monter et descendre des sites simplement en ajoutant ou en supprimant un lien symbolique et en émettant un service nginx reload.
Vous pouvez faire preuve de créativité et utiliser cette méthode pour rediriger les sites vers une page en mode maintenance pendant que vous effectuez la maintenance du site.
Donc, la structure ressemble à ceci:
/sites-available/ (you can use obvious file names like this)
|
|-> a.mysite.com
|-> b.mysite.com
|-> someOtherSite.com
/sites-enabled/ (these are just symlinks to the real files in /sites-available)
|
|-> a.mysite.com
|-> b.mysite.com
Notez que puisqu'il n'y a que les deux premières entrées, il s'agit des seuls éléments liés symboliquement dans sites-enabled
, la troisième entrée, someOtherSite.com
est donc hors ligne.
Si vous regardez nginx.conf
, vous trouverez include
directive qui inclut tous les fichiers de la sites-enabled
répertoire. Ce répertoire stocke les liens symboliques vers les fichiers de configuration de sites-available
afin de pouvoir activer et désactiver des éléments de votre configuration.
Comme vous pouvez le constater, ces répertoires n’ont aucune magie.
Si vous souhaitez héberger plusieurs sites Web, vous devez utiliser plusieurs server
blocs et/ou server_name
directive. Les tutoriels officiels sont ici: noms de serveurs et comment nginx traite une requête .
Vous faites un lien symbolique vers le fichier par défaut depuis les sites disponibles vers les sites activés. Ensuite, vous modifiez le site disponible pour inclure deux blocs de serveur, chacun avec un nom de serveur différent. voir ce qui suit. Cela suppose que vous ayez des domaines nommés exemple.com et exemple2.com. Vous auriez également fait pointer vos @records sur l’adresse IP du serveur sur lequel vous avez installé nginx.
créer un lien symbolique entre le site disponible et un site activé
Sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
éditez le fichier en utilisant l'éditeur de votre choix (vim pour moi)
Sudo vi /etc/nginx/sites-available/default
Voici le contenu de nginx conf en fonctionnement, en supposant que vous exécutiez des applications Web sur les ports 4567 et 4568.
server {
server_name www.example.com
location / {
proxy_pass http://localhost:4567/;
}
}
server {
server_name www.example2.com
location {
proxy_pass http://localhost:4568/;
}
}