Webserver

Apache2 Konfiguration VirtualHosts

Der Apache Webserver kann aus einem oder mehreren VirtualHost bestehen. Somit kann man mehrere Webseiten auf dem gleichen Server hosten. In der Konfiguration wird danach bestimmt welche Domain bzw Subdomain auf welche Webseite zugreift.

Aus Erfahrungen empfiehlt es sich für jede Website eine Konfigurationsdatei zu erstellen.

Eine grundlegende VirtualHost Konfiguration sieht so aus:

<VirtualHost *:80> 
ServerName example.ch 
DocumentRoot /var/www/example.ch/ 
</VirtualHost>
  1. In der ersten Zeile wird der Port angegeben auf welchem er lauschen soll.
  2. In der zweiten Zeile wird die Domain definiert für die der VirtualHost zuständig sein soll.
  3. In der dritten Zeile wird das Wurzelverzeichnis angegeben, in dem die index.html oder index.php Datei liegt.

Die VirtualHost Konfigurationsdatei werden unter /etc/apache2/sites-available/ geschrieben und üblicherweise mit dem Domainnamen benennt Bsp. example.ch.conf

Danach müssen wir neu angelegte VH-Konfigurationsdateien zuerst aktivieren damit diese vom Apache Webserver beachtet werden.

a2ensite example.ch.conf

Ebenfalls müssen die Konfigurationen neu eingelesen werden

service apache2 reload

Somit ist der VirtualHost aktiv und man kann über den Domainnamen auf die Website zugreifen.

Ein VirtualHost lässt sich ebenfalls auch wieder über folgenden Befehl deaktivieren

a2dissite example.ch.conf

Auch in diesem Fall ist es nötig, den Webserver über den Befehl „service apache2 reload“ neu zu laden.

 

Bei mir sehen mittlerweile alle VirtualHost wie folgt aus:

<VirtualHost *:80>
        ServerName example.ch

        # Das folgende erzwingt SSL
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

<VirtualHost *:443>
    ServerName example.ch
    DocumentRoot /var/www/
    ServerAlias www.example.ch

 # Example SSL configuration
  SSLEngine on
  SSLProtocol all -SSLv2
  SSLCertificateFile "/etc/letsencrypt/live/example.ch/fullchain.pem"
  SSLCertificateKeyFile "/etc/letsencrypt/live/example.ch/privkey.pem"

</VirtualHost>

In diesem Fall wird man immer von Port 80 auf Port 443 gelangen und eine SSL Verschlüsselung erhalten. Da ich mit Let’s Encrypt meine Zertifikate erstelle gibt es auch keine Zertifikatfehler und kann Problemlos mit einer SSL Verschlüsselung auf der Website surfen. Wie man Let’s Encrypt nutzt zeige ich euch in einem nächsten Blog.

 

Es gibt Zahlreiche Einstellungsmöglichkeiten für einen VirtualHost, auf die ich zunächst nicht weiter eingehen möchte. Bei der default.conf sind diverse Einstellungen beschrieben und vorgeben.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.