Les hôtes virtuels basés sur IP et le nom Apache expliqués

Les hôtes virtuels basés sur IP et le nom Apache expliqués

Avec l'utilisation d'hôtes virtuels, nous pouvons faire un httpd le serveur gére plusieurs sites Web. Nous pouvons utiliser à la fois des hôtes virtuels basés sur IP et des noms; Quelles sont les différences entre eux?

Comment Apache décide que les hôtes virtuels devraient être
utilisé pour répondre à une demande client? Nous répondrons à ces questions dans ce
Article, continuez à lire!

Dans ce tutoriel, vous apprendrez:

  • Quelles sont les différences entre les hôtes virtuels basés sur IP et les noms
  • Quel est le Écouter directive et comment il est utilisé
  • Comment Apache décide quel hôte virtuel doit être utilisé pour répondre à une demande
Les hôtes virtuels basés sur IP et le nom Apache expliqués

Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Distribution indépendante
Logiciel Aucun logiciel spécifique nécessaire
Autre Familiarité avec le serveur Web Apache et les concepts de base HTTP
Conventions # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

La directive «écouter»

La première chose à prendre en considération, c'est le Écouter directif. Cette directive est obligatoire et est nécessaire pour dire au httpd serveur à quoi Port IP combinaison il devrait écouter les demandes. Par défaut, le serveur est généralement configuré pour écouter chaque IP sur le port 80.

Dans / etc / httpd / conf / httpd.confli qui est le principal httpd Fichier de configuration sur les systèmes Fedora / Rhel / Centos, à la ligne 45, Par exemple, nous pouvons lire:

Écouter 80 

Comme vous pouvez le voir, seul le port est spécifié avec le Écouter directif. En conséquence, le serveur écoutera sur ce port sur toutes les adresses IP de la machine. Si une adresse est spécifiée, le serveur écoutera uniquement sur le fourni IP: Port combinaison.

Le Écouter La directive peut être répétée plusieurs fois, il est donc très facile de spécifier plusieurs combinaisons.

Correspondance VirtualHost



Une fois le serveur configuré pour écouter une adresse ou un port spécifique, Apache doit décider quel virtualhost doit être utilisé pour répondre à la demande du client. Avant de voir les étapes impliquées dans cette décision, voyons brièvement comment un hôte virtuel est défini.

La directive utilisée pour créer et configurer l'hôte virtuel, est VirtualHost; Il utilise la syntaxe suivante:

Comme nous pouvons observer, chacun VirtualHost La directive a besoin d'un addr; il peut être spécifié comme:

  • Une adresse IP, IPv4 ou IPv6 (les adresses IPv6 doivent être enfermées entre crochets);
  • Un nom de domaine entièrement qualifié;
  • UN * Wildcard (cela correspondra à toutes les adresses)

Tous les paramètres et configurations effectués à l'intérieur du Tags, sont «locaux» à cet hôte virtuel spécifique. Voici un exemple de configuration d'hôte virtuel:

 Nom de serveur: www.exemple.com documentroot "/ var / www / example"  

Ou, en utilisant un joker:

 Nom de serveur: www.exemple.com documentroot "/ var / www / example"  

La première chose que le serveur fait est d'analyser, dans l'ordre, à chaque hôte virtuel, et de vérifier si leur addr correspond à la demande. Il est important de remarquer que les adresses IP définies ont la priorité sur les caractères génériques, qui ne sont considérés que si aucune correspondance exacte n'est trouvée. À ce stade, nous pouvons avoir trois cas:

  1. Un seul hôte virtuel correspond à la demande;
  2. Aucun hôte virtuel ne correspond à la demande;
  3. Plusieurs hôtes virtuels correspondent à la demande;

La première résolution de cas est facile: si la demande du client correspond à un seul hôte virtuel spécifique, le httpd Le serveur répond en servant le contenu lié à cet hôte virtuel. Dans ce cas, nous parlons de IP hôtes virtuels.

Le deuxième cas est également facilement expliqué: Si aucune configuration d'hôte virtuelle ne satisfait la demande du client, la configuration du serveur par défaut est utilisée pour répondre à la demande. Pour la configuration par défaut, nous voulons que tout soit défini en dehors .

Dans le troisième cas, plusieurs hôtes virtuels correspondent à la demande du client. Lorsque cela se produit, le serveur doit discriminer en fonction d'un autre facteur autre que le IP: Port combinaison: le schéma et le nom d'hôte utilise l'hôte virtuel pour s'identifier.



Hôtes virtuels basés sur le nom

Le serveur examine chaque hôte virtuel correspondant par ordre de définition et sélectionne celui qui doit être utilisé en fonction de la demande demandée nom d'hôte. C'est ce qu'on appelle les hôtes virtuels «basés sur le nom». Le premier hôte virtuel qui correspond à la demande est utilisé. S'il n'y a pas de correspondance, le serveur utilise le d'abord défini VirtualHost Comme le report.

Le principal avantage de l'utilisation d'hôtes virtuels basés sur des noms, c'est que nous pouvons exécuter plusieurs sites Web sur la même adresse IP. Voyons un exemple de VirtualHost basé sur des noms:

 Servername www.serverOne.com documentroot / var / www / serverOne  

Depuis *: 80 est utilisé comme adresse, l'hôte virtuel correspondra à chaque demande faite sur le port 80. Ce qui fait la différence dans ce cas, c'est le Nom du serveur directif. Si cette directive est omise, le serveur essaiera d'obtenir un nom de domaine entièrement qualifié (FQDN) en fonction du nom d'hôte du système d'exploitation.

Le serveur vérifie si le nom d'hôte spécifié dans la demande correspond à celui configuré via le Nom du serveur directive, dans ce cas www.serverOne.com. Si c'est le cas, le contenu spécifié avec le Document de document Directive Il est servi au client.

À l'intérieur d'une configuration d'hôte virtuelle, il est également possible de définir un ou plusieurs alias, pour correspondre à plusieurs noms d'hôte. Ceci est accompli en utilisant le Serveurs directif:

 Servername www.serverOne.com servealias *.serverOne.com documentroot / var / www / serverOne  


Dans la configuration ci-dessus, nous avons ajouté un Serveurs instruction utilisant un joker. La configuration correspondra désormais également à chaque sous-domaine de serverOne.com.

Hôtes virtuels basés sur IP

Les hôtes virtuels basés sur IP, comme nous l'avons déjà vu, sont essentiellement ce que httpd Utilise le serveur par défaut. Lorsque vous les utilisez, la possibilité de desservir plusieurs sites Web est basé sur la demande du client IP: Port combinaison.

Il va en soi que, pour utiliser ce type d'hôtes virtuels, une machine doit avoir plusieurs adresses réseau. Cela ne signifie pas que plusieurs interfaces de réseau physique sont requises, car plusieurs adresses peuvent être affectées à la même interface (c'est ce qu'on appelle Alias ​​IP), et les interfaces virtuelles peuvent également être créées (voulez savoir comment créer une interface réseau virtuelle sur Linux?

Jetez un œil à notre article sur la création d'interfaces de réseau virtuel sur Linux. Voici deux exemples d'hôtes virtuels basés sur IP:

Écoutez 8080 ServerName: www.exemple.com documentroot "/ var / www / example" servername www.exampletwo.com documentroot "/ var / www / exampletwo"  

Ci-dessus, nous pouvons voir que même si les deux hôtes virtuels ont la même adresse IP, un port différent est spécifié dans le deuxième exemple: 8080. Pour que le serveur puisse écouter ce port, nous utilisons le Écoutez 8080 directif.

Conclusion

Dans ce tutoriel, nous avons vu comment fonctionnent les hôtes virtuels Apache. Nous avons appris la différence entre IP et les hôtes virtuels basés sur les noms, et comment le serveur détermine quelle configuration doit être utilisée pour répondre à une demande client. S'il vous plaît, jetez un œil à l'installation de l'article Apache si vous voulez en savoir plus sur la configuration d'un hôte virtuel Apache.

Tutoriels Linux connexes:

  • Comment migrer Apache vers Nginx en convertissant les objets VirtualHosts en…
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Masterring Bash Script Loops
  • Choses à installer sur Ubuntu 20.04
  • Comment configurer un serveur OpenVPN sur Ubuntu 20.04
  • Guide de dépannage général GNU / Linux pour les débutants
  • Comment créer une pile de lampe basée sur Docker à l'aide de Docker sur…
  • Créer des règles de redirection et de réécriture en .htaccess sur Apache…
  • Comment gérer les hôtes virtuels dynamiques avec Apache et le…
  • Comment travailler avec l'API WooCommerce REST avec Python