Apache Makros

Man lernt immer wieder etwas Neues hinzu. Heute: Makros beim Webserver Apache! Das zugrundeliegende Problem war, daß ich verschiedene virtuelle Hosts konfiguriert hatte, die ich sowohl über HTTP als auch HTTPS verfügbar haben wollte. Bisher habe ich dann immer die <VirtualHost> Direktive kopiert und um die notwendigen Zeilen für SSL erweitert.

Mal davon abgesehen, daß man dann immer zwei VHosts konfigurieren und pflegen muss, trägt das natürlich auch nicht zur Übersichtlichkeit bei, ist aber umso anfälliger für Konfigurationsfehler. Abhilfe schafft hier nun die Installation libapache2-mod-macro. Damit kann man Macros in den Konfigurationsdateien definieren und sich so viel Arbeit ersparen. Für HTTP und HTTPS VHosts sind zum Beispiel die meisten Zeilen in der Config gleich, etwa ServerName, DocumentRoot, LogFile, etc. Somit ergibt sich dann folgende Möglichkeit: 

<Macro beispielconfig>
  ServerName foobar.de
  ServerAlias barbaz.de
  DocumentRoot /path/to/www
</Macro>

<VirtualHost 1.2.3.4:80>
  Use beispielconfig
</VirtualHost>

<VirtualHost 1.2.3.4:443>
  SSLEngine On
  SSL….
  Use beispielconfig
</VirtualHost>

Mit Hilfe von libapach2-mod-macro kann man auch noch mehr Sachen machen, wie auf perl.apache.org beschrieben, indem man mit Variablen arbeitet.

Ich glaube, das Modul wird nun zu einem meiner Lieblingsmodule bei Apache werden. Schade nur, daß ich erst heute entdeckt habe. 🙂

Uncategorized

2 thoughts on “Apache Makros

  1. Das ist ja eine Perle
    Ich habe das Makro gerade in einer Deiner Apache-Konfigs gefunden und war erstaunt. Es tröstet mich ja, dass Du mit dem Wissen nur wenige Stunden Vorsprung hattest 🙂

    Das zeigt wieder eindrucksvoll das Innovationspotenzial freier Software: Irgendwer hat immer eine Idee um vorhandene Software noch besser zu machen.

    1. Stunden? Das ist fast eine
      Stunden? Das ist fast eine Woche Vorsprung! 😉

      Aber ja, mod_macro ist schon toll… wenn ich mal etwas mehr Zeit habe, werde ich das auch ein bisschen weiter auf die Spitze treiben und die gaengigsten Sachen in Makros packen, etwa die Einstellungen fuer Drupal vhosts oder Webdav oder sowas…

      Ausgangspunkt fuer das Thema war uebrigens das Ticket im Trac wegen https fuer SVN. Man kann zwar machen, aber dann wuerde er auch auf Port 80 SSL machen, wenn es kein Modul gaebe, ala SSLEngine ON um Unterscheidung je Port zu machen. Im IRC kam dann der Hinweis auf Makros. Super Sache das. 🙂

Comments are closed.