Hébergez plusieurs domaines sur un serveur ou une adresse IP avec Apache ou Nginx



Découvrez comment configurer Apache et Nginx pour l’hébergement de multiples sites web.

L’hébergement de sites sur un serveur Cloud offre une souplesse considérable comparativement à l’hébergement mutualisé. Il vous permet d’installer les outils de votre choix, d’ajuster les ressources et de configurer votre environnement pour optimiser les performances et maîtriser les coûts.

Si vous gérez plusieurs sites à vocation commerciale et que vous préférez ne pas les héberger de manière isolée, vous pouvez exploiter la fonctionnalité de serveur virtuel proposée par les serveurs web. Examinons de plus près cette approche.

Imaginons que je souhaite rediriger les deux sites suivants vers une seule et même machine virtuelle cloud.

Avant toute chose, comprenons comment cela fonctionne.

Le concept qui permet de faire fonctionner plusieurs sites web sur une seule instance de serveur web est connu sous le nom de serveur virtuel. Il est défini dans le fichier de configuration à l’aide d’une URL. Lorsqu’une requête est adressée à une URL donnée, le serveur web acheminera le trafic depuis la racine du document correspondante.

Configurer un hôte virtuel dans Apache pour héberger plusieurs domaines

  • Établissez une connexion avec le serveur HTTP Apache.
  • Accédez au répertoire de configuration d’Apache. (Par défaut, il se trouve généralement à cet emplacement : /etc/httpd/conf/httpd.conf)
  • Effectuez une sauvegarde du fichier httpd.conf.
  • Créez un conteneur VirtualHost comme celui présenté ci-dessous, que j’ai configuré pour deux domaines.
<VirtualHost *:80>
ServerAdmin [email protected]
   DocumentRoot /opt/htdocs/lab
   ServerName lab.toptips.fr.com
   ErrorLog logs/lab.toptips.fr.com-error_log
   CustomLog logs/lab.toptips.fr.com-access_log common
</VirtualHost>

<VirtualHost *:80>
   ServerAdmin [email protected]
   DocumentRoot /opt/htdocs/gf-dev
   ServerName gf.dev
   ErrorLog logs/gf.dev-error_log
   CustomLog logs/gf.dev-access_log common
</VirtualHost>

Note : Adaptez les valeurs de ServerAdmin, DocumentRoot, ServerName, ErrorLog et CustomLog en fonction de vos besoins spécifiques.

  • Redémarrez le service Apache HTTP et testez les deux URL.

Configurer un hôte virtuel dans Nginx pour héberger plusieurs domaines

  • Établissez une connexion avec le serveur Nginx.
  • Rendez-vous dans le répertoire où vous avez installé Nginx. (L’emplacement par défaut est habituellement /etc/nginx/)

Il existe plusieurs méthodes pour y parvenir. Vous pouvez choisir de modifier le fichier nginx.conf, ou un fichier personnalisé si vous en utilisez un. Vous pouvez également créer un fichier custom.conf au sein du dossier conf.d. Optez pour la solution qui vous convient et effectuez une sauvegarde si vous choisissez de modifier un fichier existant.

  • Créez un bloc serveur pour les deux URL, comme illustré ci-dessous.
server {
listen 80;
   root /opt/htdocs/lab;
index index.html index.htm;
   server_name lab.toptips.fr.com;
   location / {
       try_files $uri $uri/ =404;
   }
}

server {
   listen 80;
   root /opt/htdocs/gf-dev;
   index index.html index.htm;
   server_name gf.dev;
   location / {
       try_files $uri $uri/ =404;
   }
}

Note : Ajustez les valeurs de root et server_name selon votre configuration.

  • Redémarrez Nginx et testez les deux URL.

N’oubliez pas de mettre à jour l’enregistrement DNS de votre URL afin de la faire pointer vers l’adresse IP du serveur. Une fois cette opération effectuée, vous devriez pouvoir accéder aux URL en utilisant la configuration que vous avez mise en place.

Conclusion

Ce guide vous a présenté rapidement la procédure pour héberger plusieurs domaines sur une seule instance de serveur web, qu’il s’agisse d’Apache ou de Nginx. Une fois votre site web mis en ligne, veillez à effectuer des tests de sécurité pour identifier d’éventuelles vulnérabilités.

Avez-vous apprécié cet article ? Si oui, n’hésitez pas à le partager avec votre réseau !