mod_wsgi
mod_wsgi ist ein Modul für den Apache-HTTP-Server, das die Ausführung von Python-Programmen durch den Webserver ermöglicht. WSGI (Web Server Gateway Interface) ist eine allgemeine Schnittstelle zwischen Webserver und Python-Anwendungen. Da das Modul mod_wsgi das Interface WSGI implementiert, ist eine Vermittlungsschicht zwischen Webserver und Python-Umgebung überflüssig.
Ziele
- Hohe Ausführungsgeschwindigkeit,
- Einfache Nutzbarkeit von WSGI und
- Einsetzbarkeit auf gemeinsam genutzten Servern.
Bisher wird Python von Webhosting-Anbietern hauptsächlich mit der langsamen Schnittstelle CGI angeboten; durch mod_wsgi soll sich dies ändern und Python im Massenmarkt als Alternative zu PHP etabliert werden.
Technik
Das Modul mod_wsgi kann in den Apache HTTP Server eingebettet oder als eigener Systemdienst (daemon) ausgeführt werden. Mit ersterem kann ein höherer Durchsatz erzielt werden, während letzteres eine klare Trennung vom Webserver erlaubt. Der sogenannte Daemon-Mode erlaubt, jeden Prozess mit einem anderen Nutzerkonto auszuführen, was eine wichtige Sicherheitsmaßnahme bei gemeinsam genutzten Webservern darstellt. Das ist, neben der nativen Implementierung von WSGI, ein wesentlicher Vorteil gegenüber mod_python.
Programmiert ist mod_wsgi in der Programmiersprache C. Durch den Wegfall einer WSGI-Vermittlungsschicht und die effiziente Implementierung ist der Speicherbedarf geringer und die Ausführungsgeschwindigkeit höher als bei WSGI-Adaptern für mod_python oder alternative FASTCGI/SCGI/CGI- oder proxy-basierte Lösungen.
Voraussetzung für den Betrieb ist Apache HTTP Server in den Versionen 1.3, 2.0 oder 2.2 sowie Python 2.3 oder neuer.