Zurück zur Startseite

VirtualHosts mit nine-manage-vhosts verwalten

  1. Einleitung
  2. Erste Schritte
  3. Website publizieren
  4. SSL-Zertifikat und Verschlüsselung
  5. Erweiterte Konfiguration

Einleitung

Auf nine.ch Managed (V)Servern kommt standardmässig nine-manage-vhosts zur Verwaltung von Websites zum Einsatz. Damit können Websites auf dem Server konfiguriert werden. Damit ein Webserver weiss, wo er die Website findet, benötigt man eine sogenannte “VirtualHost”-Konfiguration. Diese VirtualHost-Konfiguration sagt dem Webserver, wo sich die Daten befinden und unter welcher Adresse die Seite aufrufbar ist.

nine-manage-vhosts unterstützt die Webserver Apache2 sowie Nginx und ist kompatibel zum FTP-Verwaltungstool “FTPAdmin”.

Beispiel eines Aufrufs von nine-manage-vhosts auf der Kommandozeile zum Auflisten der bestehenden VirtualHosts:

www-data@server:~ $ sudo nine-manage-vhosts virtual-host list

DOMAIN      | USER     | WEBROOT                    | ALIASES
------------|----------|----------------------------|---------
example.org | www-data | /home/www-data/example.org | example.com
example.net | www-data | /home/www-data/example.net |
nine.ch     | www-data | /home/www-data/nine.ch     | subdomain.nine.ch
            |          |                            | webmail.nine.ch
            |          |                            | example.nine.ch

Erste Schritte

Standardmässig erhalten Sie bei der Bestellung eines Managed (V)Servers einen SSH/SFTPZugang für den Systembenutzer “www-data” sowie ein Benutzerkonto für das nine.ch Cockpit (https://cockpit.nine.ch/). Um sich auf den Server zu verbinden, benötigen Sie im ersten Schritt ein geeignetes Programm.

Mit dem SSH/SFTP-Zugang und dem Benutzer “www-data” erhalten Sie Zugriff auf Ihre Daten auf dem Server und können so neue Websites publizieren. Um per SSH/SFTP (nicht zu verwechseln mit FTP) auf den Server zugreifen zu können, benötigen Sie ein entsprechendes Programm, beispielsweise eines der folgenden:

Betriebssystem Programm Funktionalität Website
Windows Filezilla SFTP, FTP https://filezilla-project.org
WinSCP SFTP, FTP http://winscp.net/
Putty SSH http://www.putty.org/
Mac Filezilla SFTP, FTP https://filezilla-project.org
Cyberduck SFTP, FTP http://cyberduck.io/
Finder SFTP Im Betriebssystem enthalten
Terminal SSH Im Betriebssystem enthalten
Linux Filezilla SFTP, FTP https://filezilla-project.org
Dateimanager (Nautilus, Dolphin etc.) SFTP, FTP Im Betriebssystem enthalten
Terminal SSH Im Betriebssystem enthalten

Mit dem entsprechenden Programm haben Sie nun Zugriff auf die Dateistruktur und befinden sich in der Regel nach der Anmeldung am Server im Ordner “/home/www-data”. Darin befindet sich der Ordner “logs”, in dem Sie die Zugriffs- und Fehler-Logs der jeweiligen Websites einsehen können. Die Log-Dateien sind wie folgt benannt:

Uploaded Image

Wird ein VirtualHost für einen anderen Benutzer als www-data erstellt, befänden sich die Logs im jeweiligen Benutzerordner nach dem Schema “/home/<benutzer>/logs/”.

Was ist SSH/SFTP?

SSH ist das am weitest verbreitete Protokoll, um an Linux-Servern zu arbeiten. SSH (Secure Shell) ermöglicht eine sichere, verschlüsselte Verbindung zur Kommandozeile eines Servers. Der Standard-Port für SSH ist 22. Mit SSH lassen sich Kommandos auf dem entfernten Server ausführen, um beispielsweise Ordner zu erstellen oder Dateien zu bearbeiten.

SFTP ist die Abkürzung für SSH File Transfer Protocol. Bei nine.ch ist SFTP der Standard, um Dateien hochzuladen. Der grosse Vorteil darin besteht in seiner – wie bei SSH – verschlüsselten Verbindung zum Server. Alle übertragenen Daten werden mit einem sicheren Verfahren chiffriert. Der Port für SFTP ist standardmässig ebenfalls der Port 22 (wie bei SSH).

Warum kein FTP?

Wie bereits erwähnt, bringt SFTP einen hohen Standard an Verschlüsselung mit. Bereits die Anmeldedaten werden verschlüsselt zum Server übermittelt, damit diese insbesondere bei öffentlichen W-LANs nicht mitgelesen werden können.

Wenn Sie dennoch zwingend auf FTP angewiesen sind, bieten wir Ihnen an, unser FTPAdmin zu installieren. Dieses können wir Ihnen kostenlos offerieren. Mit FTPAdmin haben Sie die Möglichkeit, über eine Weboberfläche selbständig FTP-Benutzer einzurichten. Bestellen Sie FTPAdmin über support@nine.ch.

Website publizieren

Um eine Website zu publizieren, müssen folgende Voraussetzungen erfüllt sein:

  • Domain im DNS erfassen unter https://cockpit.nine.ch/ (Falls Sie die DNS-Server von nine.ch benutzen möchten, geben Sie beim Registrar der Domain die Nameserver ns5.nine.ch und ns6.nine.ch an)
  • VirtualHost-Konfiguration auf dem Server mit nine-manage-vhosts anlegen
  • Ihre Website per SFTP auf den Server hochladen

Die nachfolgend genannten Befehle werden auf der SSH-Kommandozeile Ihres Servers ausgeführt.

Virtual-Host - Website hinzufügen

Damit eine Website im Browser aufgerufen werden kann, muss eine bestimmte
Grundkonfiguration auf dem Webserver vorhanden sein. Diese Konfiguration nennt man VirtualHost und man erstellt sie zum Beispiel für die Website example.org mit folgendem Befehl:

www-data@server:~ $ sudo nine-manage-vhosts virtual-host create example.org

Virtual Host created: example.org
To see the configuration, use: sudo nine-manage-vhosts virtual-host show example.org

nine-manage-vhosts erstellt im obigen Beispiel die Konfiguration für http://example.org sowie http://www.example.org und den Ordner “/home/www-data/example.org” - falls dieser noch nicht existiert -, in den die Website hochgeladen werden kann. Die oft benutzte Subdomain “www”. wird standardmässig mit angelegt und muss nicht separat eingerichtet werden.

Unterordner - Relativer Pfad

Standardmässig zeigt der Webserver die Index-Datei (index.php, index.html, …) im Ordner “/home/<benutzer>/<domain>” an. Je nach Applikation ist gegebenenfalls jedoch eine leicht veränderte Ordnerstruktur notwendig. Zum Beispiel muss in solchen Fällen der Inhalt im Unterordner “app” oder “public” liegen, je nach dem, was die Applikation voraussetzt.

Für genau diesen Zweck bietet sich die Option “–webroot” an, mit der dieser Ordner definiert werden kann. Für die Webapplikation, die den Unterordner “app” benötigt, sähe das Kommando wie folgt aus:

www-data@server:~ $ sudo nine-manage-vhosts virtual-host create example.org
--webroot=/home/www-data/example.org/app

Virtual Host created: example.org
To see the configuration, use: sudo nine-manage-vhosts virtual-host show example.org

Die folgende Konfiguration des soeben erstellten VirtualHosts zeigt in diesem Beispiel die Verwendung der Option “–webroot” mit dem Unterordner “app”:

www-data@server:~ $ sudo nine-manage-vhosts virtual-host show example.org

 [...]
 ServerName example.org
 ServerAlias www.example.org
 ServerAlias example.org.server.nine.ch
 DocumentRoot /home/www-data/example.org/app
 [...]

Der angegebene Ordner muss im home-Ordner des Benutzers liegen.

ServerAlias - Gleicher Inhalt auf mehreren (Sub-)Domains

In manchen Fällen möchte man den Inhalt einer Website unter verschiedenen Domains oder Subdomains erreichbar machen. Damit die Website nicht mehrfach kopiert und konfiguriert werden muss, bietet sich ein sogenannter “ServerAlias” an, welcher wie ein Pseudonym für die Website wirkt. Der Server zeigt die Website mit den konfigurierten Adressen an.

Beispiel zur Erstellung eines Alias example.net zur bestehenden Website example.org:

www-data@server:~ $ sudo nine-manage-vhosts alias create example.net
--virtual-host=example.org

Added example.net to example.org.
List of aliases for example.org:
 example.net
 example.net.server.nine.ch
 www.example.net
 www.example.net.server.nine.ch

SSL-Zertifikate und Verschlüsselung

Zertifikate bestellen

Sie haben die Möglichkeit, SSL-Zertifikate direkt bei nine.ch zu bestellen. Die Angebote hierzu finden Sie auf unserer Website unter http://nine.ch/options/ssl. Die Bestellung erfolgt schriftlich auf support@nine.ch. Alternativ können Sie uns ein eigenes Zertifikat zukommen lassen. Nachdem unser Support das Zertifikat erhalten hat, werden wir es für Ihre Domain auf dem Server einrichten.

Mit nine-manage-vhosts steht mit dem Template “default_snakeoil_https” eine SSL-Vorlage für einen VirtualHost zur Verfügung. Dabei wird das sogenannte “Snakeoil”-Zertifikat verwendet, welches vom Server automatisch generiert und signiert wurde. Damit ist eine verschlüsselte Verbindung möglich. Bitte beachten Sie, dass mit dem “Snakeoil”-Zertifikat im Browser eine Warnmeldung ausgegeben wird, da das Zertifikat nicht von einer offiziellen Zertifizierungsstelle ausgestellt wurde.

Um die Website mit dem “Snakeoil”-SSL-Zertifikat - mit der Vorlage “default_snakeoil_https” - zu konfigurieren, wird der folgende Befehl benötigt:

www-data@server:~ $ sudo nine-manage-vhosts virtual-host create example.org ↵
--template=default_snakeoil_https
Virtual Host created: example.org
To see the configuration, use: sudo nine-manage-vhosts virtual-host show example.org

Let’s Encrypt

Details zu nine-manage-vhosts mit Let’s Encrypt finden Sie unter nine-manage-vhosts mit Let’s Encrypt.

Weiterleitung von http:// auf https:// einrichten

Eine Umleitung von HTTP auf HTTPS wird mittels einer .htaccess-Datei umgesetzt. Die Datei wird in dem Ordner platziert, in dem die Weiterleitung stattfinden soll. Der Codeteil für die Umleitung lautet wie folgt:

RewriteEngine on
RewriteCond %{HTTPS} !on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L,QSA]

Erweiterte Konfiguration

Templates

Einige Webapplikationen benötigen eine speziell abgestimmte Konfiguration.
Zum Beispiel benötigt das Python Web Framework Django immer eine spezielle WSGI-Konfiguration.
Wenn Sie ein spezielles Template möchten, senden Sie uns die gewünschte Konfiguration an support@nine.ch. Wir werden diese prüfen und installieren.
Die Arbeit wird mit dem Ansatz von CHF 180 pro Stunde verrechnet.

Um einen neuen virtuellen Host mit einem solchen Template zu erstellen, können Sie folgenden Befehl als Beispiel nehmen:

www-data@server:~ $ sudo nine-manage-vhosts virtual-host create example.org
--template=django

Virtual Host created: example.org
To see the configuration, use: sudo nine-manage-vhosts virtual-host show example.org

Wenn Sie vordefinierte Einstellungen für einen bestehenden virtuellen Host verwenden möchten, können Sie ein Template auf den gewünschten virtuellen Host anwenden:

www-data@server:~ $ sudo nine-manage-vhosts virtual-host update example.org --template=default_example

Mit dem folgenden Befehl erhalten Sie eine Liste aller verfügbaren Templates:

www-data@server:~ $ sudo nine-manage-vhosts template list

Haben Sie die gewünschten Informationen nicht gefunden?

Kontaktieren Sie unseren Support:

+41 44 637 40 40 support@nine.ch