Haach, wie herrlich kann bloggen sein! Grad läuft’s mal wieder: Ein Kommentar zum letzten Artikel bringt mich auf eine Idee zum Nächsten. Ihr habt’s bestimmt schon bemerkt - ich versuche mich immer mal wieder in schönen unsachlichen Ausdrucksweisen, die trotzdem die Sache auf den Punkt bringen. Oder auch nicht. Naja. Aber weiter im Text:
Was könnte man nur mit Port-Fetischismus meinen? Ich liebe Code-Usability. Ein super Thema, über das ich ja schon öfter referiert habe. Es ist so schön wie zeitlos… Was dabei bis lang unter den Tisch gefallen ist, sind lesbare URLs (Vielleicht mal in einem anderen Artikel) und Portangaben. Also schöne Portangaben.
Nur so zur Erinnerung: http://www.phpblogger.net:80/ ist eine Möglichkeit, einen Port zu erzwingen. Klar, das Du das schon wusstest. Welcher Port macht denn im Browser noch Sinn? Naja 443 für SSL zum Beispiel. Aber statt das zu erzwingen, wird einfach das Protokoll auf HTTPS geändert, was implizit auf Port 443 verweist.
Um das klar zustellen: Schöne Portangaben, sind nicht vorhandene Portangaben. Aber wie ein aufmerksamer Leser im Artikel zu HTTPS und SSL richtig angemerkt hat, kann man über verschiedene Ports unter ein und derselben IP mehrere SSL-Zertifikate betreiben. Und jetzt geht es mit den dreckigen Spielchen weiter, die man mit Portangaben in der URL machen kann:
Natürlich gibt es sinnvolle Möglichkeiten, die das Web-Protokoll erlaubt, um Webseiten abzurufen und Web-Applikationen anzusteuern:
- Mehrere SSL-Zertifikate über eine einzige IP betreiben
- Den PHP-Interpreter switchen (z.B. Port 80 = PHP 5, Port 8080 = PHP 4)
- Den Webroot wechseln
- Allgemein die Webserver-Konfiguration switchen (z.B. zwischen Entwicklungs- und Live-Modus einer Web-Applikation umschalten)
- Mehrere Webserver gleichzeitig betreiben
- Prinzipiell eine andere Server-Applikation oder einen Webservice ansteuern
- Durch einen Reverse-Proxy einen Blackbox-Server in einer DMZ ansprechen
Okay, wer es gemerkt hat, wurde eigentlich in allen Fällen die Serverconfig geswitched. Ich wollte aber ja eigentlich auch nur die Vielzahl an Möglichkeiten aufzeigen, die es unter Umständen rechtfertigen, mit Port-basierten zu arbeiten.
Wie bereits erwähnt - ich finde Port-Angaben in der URL grundsätzlich hässlich. In den meisten Fällen kann man alles, was über Port-Basierte-VirtualHosts gelöst wird, auch mit Subdomains lösen. Im Falle eines SSL-Betriebes müsste natürlich unter Umständen auf eine separate IP-Adresse in Verbindung mit einem Zertifikat zurückgegriffen werden.
Aber auch dort gibt es die Möglichkeit mit kostenlosen selbst ausgestellten Zertifikaten zu arbeiten und eine zusätzliche IP ist im lokalen Netz auch schnell und kostenlos organisiert. Sogar eine einzige Netzwerkkarte kann mit verschiedenen IPs betrieben werden, falls kein weiterer freier Netzwerkport zur Verfügung steht.
Du stehst trotzdem auf “dreckige Spielchen” mit Ports? Sinn macht die Verwendung von unterschiedlichen Ports aus meiner Sicht vor allem auf Staging- oder Entwicklungs-Servern.
Aber auch um seine Applikation besonders abzusichern, kann man mit verschiedenen Ports oder Subdomains arbeiten. Sicherheit ergibt sich dadurch, das eine eventuelle Admin-Oberfläche nur auf solchen besonderen Vhosts zur Verfügung steht oder gleichzeitig noch eine IP-Sperre eingebaut ist.
Auch die Applikation kann mit Hilfe von $_SERVER["SERVER_PORT"] auf einen anderen Port reagieren, Deiner Phantasie sind keine Grenzen gesetzt - ob das dann schön oder praktisch ist, ist eine andere Frage ;)
Fazit
Mit portbasierten Vhosts sind schöne Spielereien möglich. Ich würde solche Dinge allerdings nur auf Entwicklungs- oder Stagingservern umsetzen. Maschinen im Livebetrieb freuen sich über die Verwendung von Subdomains.
Ähnliche Artikel:





