Sep
27
2019

Configuration d’apache de façon générique avec mod_macro


Definition

Le mod_macro d’apache permet de standardisé les virtualhost en permettant l’utilisation de macro ( Fonction / variables ).

Installation

Le mod_macro est un module de base et est installé avec apache.

Pour l’activer éditer le fichier /etc/httpd/conf.modules.d/00-base.conf

Et ajouter la ligne :

LoadModule macro_module modules/mod_macro.so

Recharger apache :

systemctl httpd reload

Configuration

A présent, créez ou ouvrez un fichier conf pour créer ou modifier un virtualhost. Par exemple, /etc/httpd/conf.d/vhosts.conf.

Le principe est simple. Prenez votre virtualhost de base :

<VirtualHost 192.168.0.1:80>
    ServerName app1.domaine.fr
    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/

# Logging
LogLevel warn

ErrorLog /var/log/httpd/app1.domaine.fr-error_log
CustomLog /var/log/httpd/app1.domaine.fr-access_log combined

</VirtualHost>

Imaginons que vous ayez plusieurs applications du même type. Le virtualhost doit être identique pour chaque application. Les seules différences que vous avez sont par exemple le fqdn (app1.domaine.fr) et le port (8080)

Dans ce cas vous pouvez créer un virtualhost générique pour les applications suivantes :

  • FQDN : app1.domaine.fr Port : 8080
  • FQDN : app2.domaine.fr Port : 8081
  • FQDN : app3.domaine.fr Port : 8082
  • FQDN : app4.domaine.fr Port : 8083
  • FQDN : app5.domaine.fr Port : 8084

Voici ce que ça donnerait :

<Macro VHost $servername $port>
<VirtualHost 192.168.0.1:80>
    ServerName $servername
    ProxyPass / http://127.0.0.1:$port/
    ProxyPassReverse / http://127.0.0.1:$port/

# Logging
LogLevel warn

ErrorLog /var/log/httpd/$servername-error_log
CustomLog /var/log/httpd/$servername-access_log combined

 

</VirtualHost>
</Macro>

Use VHost app1.domaine.fr 8080
Use VHost app2.domaine.fr 8081
Use VHost app3.domaine.fr 8082
Use VHost app4.domaine.fr 8083
Use VHost app5.domaine.fr 8084

Ici nous avons créé une macro (Fonction entre les deux balises Macro) qui utilise deux variables $port et $servername. Les valeurs seront automatiquement remplis au démarrage d’apache avec les valeurs définis par Use VHost.

Important : La Macro doit être défini avant de l’utiliser. C’est à dire au dessus du Use.

Pensez à redémarrer apache puis testez.

D’un point de vue administration je trouve ça vraiment pratique.

A vous de jouer Clignement d'œil

Articles similaires

Au sujet de l'auteur: Olivier Legras

Auteur de ce Blog, je partage quelques unes de mes notes que je juge utile à vous comme à moi. Je suis très heureux de voir que mon blog a de plus en plus d'affluence. Merci à vous!

Laissez un commentaire