NAS-Speicher mit einer Kapazität von einigen Dutzend Terabyte, wie sie sich für mittelständische Anwender eignen, nimmt die ADMIN-Redaktion in der Ausgabe ... (mehr)

Leerstellen

Standardmäßig muss das Lua-Skript die Funktion »handle()« enthalten. Die Konfigurations-Direktive »LuaMapHandler« kann das jedoch ändern. Fügt man der »httpd.conf« etwa die Zeile:

LuaMapHandler /info /var/www/beispiel.luasaghallo

hinzu, würde Apache beim Abruf der URL http://localhost/info die Funktion »saghallo« im Lua-Skript »/var/www/beispiel.lua« starten.

Die Betonung liegt dabei auf "würde", denn diese Direktive ist ähnlich wie »parsebody()« schlichtweg nicht implementiert – und das, obwohl bereits fertige Testskripte dafür existieren (unter »/modules/lua/test« im Apache-Quellcode). Auch weitere interessante Direktiven glänzen durch ihre Abwesenheit, wie etwa »LuaCodeCache« , mit der man eigentlich das Cacheverhalten für Lua-Skripte beeinflussen soll.

Am Haken

Selbst geschriebene Module können sich über so genannte Hooks in die verschiedenen Verarbeitungsphasen des Webservers einklinken und Veränderungen vornehmen. »mod_lua« ermöglicht das auch einem Lua-Skript. Auf diese Weise kann man beispielsweise eine URL-Umleitung als Lua-Skript implementieren. Listing 5 liefert beim Zugriff auf die URL http://localhost/geheim die HTML-Datei »verboten.html« zurück.

Listing 5

URL-Umleitung über ein Lua-Skript

 

Die im Listing 5 eingebundene Bibliothek »apache2« bietet unter anderem die Konstanten aus Tabelle 1. Je nach Hook können auch andere Rückgabewerte sinnvoll sein, etwa ein HTTP-Statuscode. Damit Apache weiß, in welcher Lua-Datei es wann welche Funktion aufzurufen hat, müssen Sie in der »httpd.conf« noch eine Zeile der Form:

LuaHookTranslateName /usr/local/apache2/skripte/umleitung.lua translate_name early

hinzufügen. »LuaHookTranslateName« weist Apache an, die Lua-Funktion »translate_name« möglichst früh bei der Interpretation der Anfrage-URL aufzurufen.

Den Funktionsnamen im Lua-Skript könnte man folglich auch anders benennen, wie in Listing 5 bietet es sich jedoch an, ihn wie den entsprechenden Apache-Hook zu taufen. Die Zeile »/usr/local/apache2/skripte/umleitung.lua« führt schließlich noch den kompletten Pfad zur Skript-Datei auf. Der optionale Parameter »early« sorgt dafür, dass Apache die Funktion so früh wie möglich im Verarbeitungsprozess anwirft. Mit »late« würde Apache die Funktion möglichst spät aktivieren.

Alle weiteren existierenden Hook-Direktiven listet die offizielle Dokumentation des Moduls am unteren Seitenende auf [7]. Es gibt jedoch auch hier wieder einige Direktiven, die noch gar nicht implementiert sind. Weitere Beispielskripte insbesondere zu den Hooks warten im Apache-Quellcodeverzeichnis unter »modules/lua/test« .

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2022