LINUX:HTTP - Paramétrage des machines virtuelles, port HTTP

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

retour au serveur Web


But

En premier lieu, on va paramétrer les diverses machines virtuelles pour le port HTTP, c'est à dire le n° 80. Toutes vont se ressembler car toute requête sur le port HTTP sera réécrite pour utiliser le port HTTPS.


Organisation

Nous allons créer un fichier de paramétrage par machine virtuelle et par adresse IP.

Ces fichiers seront placés dans un nouveau répertoire que l'on nommera "/etc/httpd/conf.hosts.d".

Pour qu'ils soient intégrés dans la configuration d'Apache, on ajoute à la suite du fichier "/etc/httpd/conf/httpd.conf", la ligne suivante:


Include /etc/httpd/conf.hosts.d/*.conf

Ainsi si on ajoute ou retire une machine virtuelle, il suffit de créer ou détruire le fichier correspondant à notre machine virtuelle et ensuite de recharger la configuration d'Apache.


Machines virtuelles publiques

Nous allons prendre un premier cas, la machine virtuelle "www.adbweb.gslb.eu". Voici le contenu du fichier qu'on pourrait nommer "host-www-gslb.conf":


<VirtualHost *:80>
 ServerName www.adbweb.gslb.eu
 RewriteEngine on
 RewriteRule ^ https://www.adbweb.gslb.eu%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

On remarque les paramètres suivants:

  • <VirtualHost *:80> : début de la section "VirtualHost" qui concerne toute adresse IP pour le port 80 (HTTP).
  • ServerName : définit le nom de la machine virtuelle concernée.
  • RewriteEngine on : on active le module de réécriture.
  • RewriteRule : on réécrit la requête vers une équivalente mais de type HTTPS de façon permanente.
  • </VirtualHost> : clôture de la section "VirtualHost".

Le début de la requête http://www.adbweb.gslb.eu/ sera réécrite en https://www.adbweb.gslb.eu/.


Voici les autres sur le même schéma pour les différentes autres machines virtuelles:

  • la machine virtuelle "adbweb.gslb.eu" (fichier "host-gslb.conf")

<VirtualHost *:80>
 ServerName adbweb.gslb.eu
 RewriteEngine on
 RewriteRule ^ https://adbweb.gslb.eu%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

  • la machine virtuelle "archive.laplanchedenvol.be" (fichier "host-abeille.conf")

<VirtualHost *:80>
 ServerName archive.laplanchedenvol.be
 RewriteEngine on
 RewriteRule ^ https://archive.laplanchedenvol.be%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

  • la machine virtuelle "laplanchedenvol.be" (fichier "host-asbl.conf")

<VirtualHost *:80>
 ServerName laplanchedenvol.be
 RewriteEngine on
 RewriteRule ^ https://laplanchedenvol.be%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>


Machine "localhost"

On aborde la machine "localhost" de façon un peut différente car elle n'est utilisée que via l'adresse IP "127.0.0.1":

On nommera ce fichier "host-localhost.conf" dont voici le contenu:


<VirtualHost 127.0.0.1:80>
 ServerName localhost
 ServerAlias 127.0.0.1
 RewriteEngine on
 RewriteRule ^ https://localhost%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

On remarque les options suivantes:

  • <VirtualHost 127.0.0.1:80> : qui restreint le traitement à l'adresse IP "127.0.0.1".
  • ServerAlias 127.0.0.1 : on ajoute à la machine "localhost", un alias qui reprend son adresse IP. Cette section traitera donc deux "machines": "localhost" et "127.0.0.1".


Machines virtuelles locales

Cette configuration concerne notre machine locale "serverdb.home.dom" et ses alias "serverdb" et "www.home.dom" (fichier "host-serverdb.conf"):


<VirtualHost *:80>
 ServerName serverdb.home.dom
 ServerAlias serverdb www.home.dom
 RewriteEngine on
 RewriteRule ^ https://serverdb.home.dom%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>


Adresse IP vers le LAN privé

Toute adressage IP public est transformé dans notre LAN privé selon l'adresse IP privée de notre serveur "192.168.1.100".

Nous la traitons aussi comme une machine virtuelle séparée (fichier "host-ip.conf"):


<VirtualHost *:80>
 ServerName 192.168.1.100
 RewriteEngine on
 RewriteRule ^ https://192.168.1.100%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

Notons que les deux derniers points auraient pu être rassemblés mais par souci de parallélisme avec le traitement spécifique pour le protocole HTTPS, nous avons préféré les laissés séparés.


Affichage des machines virtuelles du port HTTP

Quand la configuration complète sera faite (HTTPS compris), on peut exécuter la commande suivante:

httpd -D DUMP_VHOSTS

qui donnera pour cette partie:


VirtualHost configuration:
127.0.0.1:80           localhost (/etc/httpd/conf.hosts.d/host-localhost.conf:1)
*:80                   is a NameVirtualHost
        default server archive.laplanchedenvol.be (/etc/httpd/conf.hosts.d/host-abeille.conf:1)
        port 80 namevhost archive.laplanchedenvol.be (/etc/httpd/conf.hosts.d/host-abeille.conf:1)
        port 80 namevhost laplanchedenvol.be (/etc/httpd/conf.hosts.d/host-asbl.conf:1)
        port 80 namevhost adbweb.gslb.eu (/etc/httpd/conf.hosts.d/host-gslb.conf:1)
        port 80 namevhost 192.168.1.100 (/etc/httpd/conf.hosts.d/host-ip.conf:1)
        port 80 namevhost serverdb.home.dom (/etc/httpd/conf.hosts.d/host-serverdb.conf:1)
                alias serverdb
                alias www.home.dom
        port 80 namevhost www.adbweb.gslb.eu (/etc/httpd/conf.hosts.d/host-www-gslb.conf:1)

On remarque en quatrième ligne, la configuration par défaut. Elle est celle de la machine virtuelle "archive.laplanchedenvol.be". Cette configuration est prise par défaut car elle est la première rencontrée selon l'ordre alphabétique des fichiers de paramétrage. Dans le cas d'une requête HTTP pour une machine virtuelle non listée, c'est le défaut qui sera pris en compte. Si on veut en mettre une autre, il suffit de changer le nom du fichier. Par exemple, on le fait précéder de "00-". Cette pratique a déjà été rencontrée pour le paramétrage des modules.

On remarque également la mise à part de la machine "localhost" suite à la restriction à une adresse IP particulière.





retour au serveur Web