GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer plusieurs sites Web avec le serveur Web Apache

Dans mon dernier article, j'expliquais comment configurer un serveur Web Apache pour un seul site Web. Cela s'est avéré très facile. Dans cet article, je vais vous montrer comment servir plusieurs sites Web à l'aide d'une seule instance d'Apache.

Remarque :J'ai écrit cet article sur une machine virtuelle utilisant Fedora 27 avec Apache 2.4.29. Si vous avez une autre distribution ou version de Fedora, les commandes que vous utiliserez ainsi que les emplacements et le contenu des fichiers de configuration peuvent être différents.

Comme mon article précédent l'a mentionné, tous les fichiers de configuration pour Apache sont situés dans /etc/httpd/conf et /etc/httpd/conf.d . Les données des sites Web se trouvent dans /var/www par défaut. Avec plusieurs sites Web, vous devrez fournir plusieurs emplacements, un pour chaque site que vous hébergez.

Hébergement virtuel basé sur le nom

Avec l'hébergement virtuel basé sur le nom, vous pouvez utiliser une seule adresse IP pour plusieurs sites Web. Les serveurs Web modernes, y compris Apache, utilisent le hostname partie de l'URL spécifiée pour déterminer quel hôte Web virtuel répond à la demande de page. Cela ne nécessite qu'un peu plus de configuration que pour un seul site.

Même si vous commencez avec un seul site Web, je vous recommande de le configurer en tant qu'hôte virtuel, ce qui facilitera l'ajout d'autres sites ultérieurement. Dans cet article, je vais reprendre là où nous nous sommes arrêtés dans l'article précédent. Vous devrez donc configurer le site Web d'origine, un site Web virtuel basé sur le nom.

Préparer le site Web d'origine

Avant de configurer un deuxième site Web, vous devez obtenir un hébergement virtuel basé sur le nom fonctionnant pour le site existant. Si vous n'avez pas de site Web existant, revenez en arrière et créez-en un maintenant.

Une fois que vous avez votre site, ajoutez la strophe suivante au bas de son /etc/httpd/conf/httpd.conf fichier de configuration (l'ajout de cette strophe est la seule modification que vous devez apporter au httpd.conf fichier):

<VirtualHost 127.0.0.1:80>
    DocumentRoot /var/www/html
    ServerName www.site1.org
</VirtualHost>

Ce sera la première strophe d'hôte virtuel, et elle devrait rester en premier, pour en faire la définition par défaut. Cela signifie que l'accès HTTP au serveur par adresse IP, ou par un autre nom qui résout cette adresse IP mais qui n'a pas de strophe de configuration d'hôte nommé spécifique, sera dirigé vers cet hôte virtuel. Toutes les autres strophes de configuration de l'hôte virtuel doivent suivre celle-ci.

Vous devez également configurer vos sites Web avec des entrées dans /etc/hosts pour fournir une résolution de nom. La dernière fois, nous avons juste utilisé l'adresse IP pour localhost . Normalement, cela se ferait en utilisant le service de noms que vous utilisez; par exemple, Google ou Godaddy. Pour votre site Web de test, faites-le en ajoutant un nouveau nom au localhost ligne dans /etc/hosts . Ajoutez les entrées pour les deux sites Web afin de ne pas avoir à modifier à nouveau ce fichier ultérieurement. Le résultat ressemble à ceci :

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 www.site1.org www.site2.org

Modifions également le /var/www/html/index.html fichier pour être un peu plus explicite. Il devrait ressembler à ceci (avec du texte supplémentaire pour l'identifier en tant que site Web numéro 1) :

<h1>Hello World</h1> 

Web site 1.

Redémarrez le serveur HTTPD pour activer les modifications apportées au httpd configuration. Vous pouvez ensuite consulter le site Web à l'aide du navigateur en mode texte Lynx à partir de la ligne de commande.

[root@testvm1 ~]# systemctl restart httpd
[root@testvm1 ~]# lynx www.site1.org

                                              Hello World
  Web site 1.
<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move.  Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

Vous pouvez voir que le contenu révisé du site Web d'origine est affiché et qu'il n'y a pas d'erreurs évidentes. Appuyez sur la touche "Q", suivie de "Y" pour quitter le navigateur Web Lynx.

Configuration du deuxième site Web

Vous êtes maintenant prêt à configurer le deuxième site Web. Créez une nouvelle structure de répertoires de sites Web avec la commande suivante :

[root@testvm1 html]# mkdir -p /var/www/html2

Notez que le deuxième site Web est simplement un deuxième html répertoire dans le même /var/www répertoire comme premier site.

Créez maintenant un nouveau fichier d'index, /var/www/html2/index.html , avec le contenu suivant (ce fichier d'index est un peu différent, pour le distinguer de celui du site d'origine) :

<h1>Hello World -- Again</h1> 

Web site 2.

Créez une nouvelle strophe de configuration dans httpd.conf pour le deuxième site Web et placez-le sous la strophe précédente de l'hôte virtuel (les deux doivent être très similaires). Cette strophe indique au serveur Web où trouver les fichiers HTML du second site.

<VirtualHost 127.0.0.1:80>
    DocumentRoot /var/www/html2
    ServerName www.site2.org
</VirtualHost>

Redémarrez HTTPD et utilisez Lynx pour afficher les résultats.

[root@testvm1 httpd]# systemctl restart httpd
[root@testvm1 httpd]# lynx www.site2.org

                                    Hello World -- Again

   Web site 2.

<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move.  Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

Ici, j'ai compressé la sortie résultante pour l'adapter à cet espace. La différence dans la page indique qu'il s'agit du deuxième site Web. Pour afficher les deux sites Web en même temps, ouvrez une autre session de terminal et utilisez le navigateur Web Lynx pour afficher l'autre site.

Autres considérations

Cet exemple simple montre comment servir deux sites Web avec une seule instance du serveur Apache HTTPD. La configuration des hôtes virtuels devient un peu plus complexe lorsque d'autres facteurs sont pris en compte.

Par exemple, vous souhaiterez peut-être utiliser des scripts CGI pour l'un de ces sites Web ou les deux. Pour ce faire, vous devez créer des répertoires pour les programmes CGI dans /var/www :/var/www/cgi-bin et /var/www/cgi-bin2 , pour être cohérent avec le nommage du répertoire HTML. Vous devrez ensuite ajouter des directives de configuration aux strophes de l'hôte virtuel pour spécifier l'emplacement du répertoire pour les scripts CGI. Chaque site Web pourrait également avoir des répertoires à partir desquels des fichiers pourraient être téléchargés; cela nécessiterait également des entrées dans la strophe appropriée de l'hôte virtuel.

Le site Web Apache décrit d'autres méthodes de gestion de plusieurs sites Web, ainsi que des options de configuration allant du réglage des performances à la sécurité.

Apache est un serveur Web puissant qui peut être utilisé pour gérer des sites Web allant du plus simple au plus complexe. Bien que sa part globale diminue, Apache reste le serveur HTTPD le plus utilisé sur Internet.


Linux
  1. Comment configurer un serveur Web Apache

  2. Comment sécuriser le serveur Web Apache avec Let's Encrypt sur RHEL 8

  3. Comment créer des hôtes virtuels sur un serveur Apache pour héberger plusieurs sites Web

  4. Comment installer le serveur Web Apache sur Ubuntu

  5. Comment installer et configurer le serveur Web Apache sur Ubuntu 13.10

Comment installer le serveur Web Apache sur Debian 11

Héberger plusieurs sites Web sur un seul serveur avec Apache sur Ubuntu 18.04

Comment installer et configurer ModEvasive avec Apache sur Ubuntu 18.04

Comment évaluer les performances d'un serveur Web avec Apache Bench

Comment installer et configurer Caddy Web Server avec PHP sur Rocky Linux 8

Comment installer et configurer un serveur Web LAMP sur Ubuntu 18.04