Makros vereinfachen Apache-Konfiguration

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

Mit Version 2.4 hat Apache eine Makro-Funktion eingeführt, die es vereinfacht, modulare Konfigurationsdateien zu schreiben.

Seit Version 2.4 bringt der Apache-Webserver ein neues Modul namens "mod_macro" mit. Es hilft dabei, häufig wiederkehrende Konfigurationsabschnitte in einzelne Dateien auszulagern, zu parametrisieren und somit die Apache-Konfiguration zu modularisieren. Ist das Modul noch nicht aktiv, können Sie es mit einem Symlink von "/etc/apache2/mods-available/macro.load" nach "/etc/apache2/mods-enabled/macro.load" (Ubuntu/Debian) oder dem Befehl "a2enmod macro", der zum selben Ergebnis führt, aktivieren.

Wenn Sie nun beispielsweise regelmäßig virtuelle Hosts anlegen, deren Konfiguration sich nur in den Hostnamen und den zugehörigen Logdateien unterscheiden, können Sie dafür ein Makro definieren, in der Datei "/etc/apache/conf-available/vhost-macro.conf" speichern und analog zu oben einen Symlink zu "/etc/apache/enabled/vhost-macro.conf" anlegen:

<Macro VHost $name $domain>
<VirtualHost *:80>
    ServerName $domain
    ServerAlias www.$domain

    DocumentRoot "/var/www/vhosts/$name"
    ErrorLog "/var/log/httpd/$name.error_log"
    CustomLog "/var/log/httpd/$name.access_log" combined
</VirtualHost>
</Macro>

Per Default werden Dateien in dem obigen Verzeichnis auf Ubuntu-Systemen geladen. Alternativ legen Sie die Datei an einem anderen Ort ab, wo der Apache-Webserver sie beim Start findet. Dann steht das Makro in anderen Konfigurationsdateien zur Verfügung, wo Sie es folgendermaßen verwenden:

Use VHost adminmag admin-magazin.de
Use VHost itamag it-administrator.de

Hinter der Use-Anweisung folgt der Makroname, dahinter die beiden oben unter "Macro" definierten Parameter "$name" und "$domain" (die Dollarzeichen sind Teil des Variablennamens), die vom Makro-Modul expandiert werden. Wie man sihet, lässt sich mit Apache-Makros beispielsweise die Konfiguration virtueller Hosts, die sich nur in Details unterscheiden, drastisch vereinfachen. Ein Tipp der mod_macro-Dokumentation ist, nicht zwei oder mehr Variablen zu verwenden, von denen eine ein Teil der anderen ist, etwa "$domain" und "$domainname".

29.06.2018
comments powered by Disqus

Artikel der Woche

Loadtests ohne Server

Für Loadtests der eigenen Server bietet sich die Cloud an, denn kurz getaktet lassen sich dort viele Rechnerinstanzen starten, die das eigene Budget nur wenig belasten. Noch flexibler, günstiger und besser skalierbar sind Tests mit einer Serverless-Infrastruktur wie AWS Lambda. Wir führen vor, wie Sie dort mit Serverless Artillery eigene Loadtests starten. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Container

Wie setzen Sie Container ein?

  • Gar nicht
  • Docker standalone
  • Docker mit Kubernetes
  • Docker mit Swarm
  • Docker mit anderem Management
  • LXC/LXD
  • Rocket
  • CRI-O auf Kubernetes
  • Container auf vSphere
  • Andere (siehe Kommentare auf der Ergebnisseite)

Google+

Ausgabe /2018

Microsite