78 votes

plusieurs sites web sur nginx & sites-available

Avec l'installation de base de nginx, vos sites-available ne contient qu'un seul fichier : default

comment le sites-available et comment puis-je l'utiliser pour héberger plusieurs sites web (séparés) ?

95voto

Carlos Points 655

Pour ajouter une autre approche, vous pouvez utiliser un fichier distinct pour chaque domaine ou site virtuel que vous hébergez. Vous pouvez utiliser une copie du fichier par défaut comme point de départ pour chacun d'eux et le personnaliser pour chaque site.
Créez ensuite des liens symboliques dans sites-enabled. De cette façon, vous pouvez monter et descendre des sites en ajoutant ou en supprimant un lien symbolique et en lançant un service nginx reload.

Vous pouvez être créatif et utiliser cette méthode pour rediriger les sites vers une page en mode maintenance pendant que vous effectuez la maintenance du site.

La structure ressemble donc à 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

Remarquez que, comme il n'y a que les deux premières entrées, ce sont les seuls éléments symlinkés dans sites-enabled la troisième entrée, someOtherSite.com est donc hors ligne.

31voto

VBart Points 5960

Si vous regardez nginx.conf vous trouverez include qui inclut tous les fichiers du répertoire 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 facilement certaines parties de votre configuration.

Comme vous pouvez le constater, il n'y a pas de magie avec ces répertoires.

Si vous voulez héberger plusieurs sites web, vous devriez utiliser plusieurs server blocs et/ou server_name directive. Les tutoriels officiels sont ici : Noms des serveurs y Comment nginx traite une requête .

20voto

jmontross Points 1882

Vous faites un lien symbolique entre le fichier par défaut des sites disponibles et celui des sites activés. Ensuite, vous modifiez le site disponible afin d'inclure deux blocs de serveurs, chacun avec un nom de serveur différent, comme indiqué ci-dessous. Cela suppose que vous avez deux domaines appelés exemple.com et exemple2.com. Vous auriez également fait pointer vos @records vers l'adresse IP du serveur sur lequel vous avez installé nginx.

lien symbolique du site disponible vers un site activé

sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

éditer le fichier en utilisant l'éditeur de votre choix (vim pour moi)

sudo vi /etc/nginx/sites-available/default

Voici le contenu d'une conf nginx fonctionnelle, en supposant que vous exécutez 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/;
    }

}

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