NginScript

JavaScript-basierte Konfigurationssprache für nginx

| Autor: Thomas Drilling

Neue Scriptsprache für nginx
Neue Scriptsprache für nginx (nginx.com)

Die Entwickler des beliebten, quelloffenen Webservers nginx haben mit nginScript eine auf JavaScript-basierende Konfigurationssprache vorgestellt, die den nginx-Webserver noch besser konfigurierbar machen soll.

Nginx ist ein sehr populärer, schneller, modular aufgebauter Webserver. Dank der einzelnen Module lässt sich nginx sehr flexibel einsetzen, nicht nur für Namens- oder IP-basierte Virtual Hosts und FastCGI, sondern beispielsweise auch als Lastverteiler oder Reverse Proxy und bietet zahlreiche Leckerbissen, wie direkten Zugriff auf den Memcached-Cache, integrierten SSL-Support, Unterstützung für Flash-Video-Streaming oder das WebSocket-Protokoll und vieles mehr. Mithilfe des Moduls Naxsi ist es sogar möglich, nginx als Web Application Firewall einzusetzen.

Populärer Webserver

Technologisch besteht einer der wesentlichen Unterschiede zu Apache & Co darin, dass nginx Requests nicht Thread-basiert behandelt, sondern auf eine skalierbare, Event-basierte Architektur aufbaut. Wegen seiner Leistungsfähigkeit, des modularen Aufbaus und der vielfältigen Einsatzmöglichkeiten und vor allem der guten Konfigurierbarkeit setzen viele große Webdienste nginx als Plattform ein, darunter Golem, Computerbase, GitHub, SourceForge, WordPress.com oder FastMail.

Skripting mit nginx

Bisher sind die Skripting-Möglichkeiten in nginx auf die Programmiersprache C und andere eingebettete Sprachen wie Lua begrenzt. Mit nginScript steht künftig ergänzend eine auf JavaScript basierende Konfigurationssprache zur Verfügung, die nginx noch flexibler konfigurierbar machen soll.

Die Wahl fiel offenbar mit JavaScript gezielt auf die derzeit populärste Programmiersprache auf GitHub. Da nginScript laut Aussage der Entwickler eine sehr robuste Implementierung von JavaScript, darstellt, soll sich die Sprache von JavaScript-erfahrene Entwicklern leicht erlernen lassen.

NginScript selbst besteht aus zwei Komponenten, einer spezialisierten VM samt Bytecode Compiler auf der einen Seite, sowie einer Konfigurationssyntax für das Einbetten on JavaScript-Snippets in nginx. Dies kann wahlweise mithilfe der beiden Direktiven js_set und js_run erfolgen. Einige Code-Beispiele finden sich in der offiziellen Ankündigung.

Frühes Entwicklungsstadium

Die Entwickler weisen aber ausdrücklich darauf hin, dass sich nginScript noch in einem frühen Entwicklungsstadium befindet. Haupteinsatzgebiete für nginScript seien nach Aussage der Entwickler Sicherheitsbedrohungen und die Kontrolle des Traffics oder eine schnellere Anwendungsentwicklung mit funktionalen Bibliotheken.

NginScript soll Lua und andere eingebettete Sprachen aber nicht ersetzen, sondern ergänzen.