Montag, 4. September 2017

Apache HTTP Server - vHost Konfiguration

Wie kann man mehrere Webseiten mithilfe von einem Webserver betreiben?

Dies geht mit Hilfe des "Virtual Hosting". Dabei wird der Webserver (z.B. Apache) so konfiguriert, dass er auf unterschiedliche Hostnamen (Doamins) reagieren kann. Somit ist es möglich, auf einem Webserver, mehrere Webseiten unter der gleichen IP-Adresse gleichzeitig zu betreiben. Der Webserver entscheidet auf Basis des HTTP-Headers, welche Webseite ausgeliefert werden soll.

Auszug eines HTTP Headers:

Beispiele von Apache für die Konfiguration befindet sich unter /etc/apache2/sites-available
  • default
  • default-ssl 
Diese können als Basis für eine eigene Konfiguration verwendet werden:

Konfiguration der eigenen "Virtual Host" Datei

Im Verzeichnis /etc/apache2/sites-available habe ich eine neue Datei namens hemel angelegt. Dazeu habe ich ein Verzeichnis unter /var/www/virtual/hemel angelegt, da sich dann hier die eigentlichen "html Dateien" befinden werden.

Hier meine Beispiel Konfigiration um auf die Domain "beispiel.de" reagieren zu können:
#############################################################
# www.beispiel.de
#############################################################
<VirtualHost *:80>
     ServerName www.beispiel.de:80

     ServerAdmin server@beispiel.de
     ServerAlias www.beispiel.de

     # -Indexes - Verzeichnis Inhalt nicht anzeigen!
     Options -Indexes
     DocumentRoot /var/www/virtual/hemel/htdocs/beispiel-de
     ScriptAlias /cgi-bin/ /var/www/virtual/hemel/cgi-bin/

     LogLevel warn
     ErrorLog /var/log/apache2/beispiel-error.log
     CustomLog /var/log/apache2/beispiel-access.log combined

     # Leitet alle Anfragen an den ssl-host weiter.
     #RedirectPermanent / https://beispiel.de/
</VirtualHost>


  • ServerAdmin: E-Mail-Adresse des Server-Administrators hinterlegen, diese würde man bei Fehlermeldungen im Apache sehen. 
  • ServerName: Unter diesem Namen ist die Seite erreichbar. Muss aber per DNS oder über /etc/hosts auflösbar sein.
  • DocumentRoot: Basisverzeichnis "document root" des Virtual Hosts. http://BEISPIEL.de/datei.html => Zugriff auf die Datei /var/www/virtual/hemel/htdocs/beispiel-de/datei.html
Nach dem ein neuer Virtual Host angelegt wurde ("available"), muss diese noch im Webserver aktiviert werden ("enabled"). Dies geht mit dem folgenden Befehl:
  • sudo a2ensite hemel
Jetzt ist die angelegt Datei unter /etc/apache2/sites-enabled verlinkt und aktiviert.

Hinweis: Mehr Details zu den einzelnen Konfigurationen finden sich in der Apache Dokumentation http://httpd.apache.org/docs/2.2/de/mod/core.html#virtualhost


Keine Kommentare:

Kommentar veröffentlichen