Einleitung
Das Hosten mehrerer Websites auf einem einzigen Ubuntu-Server ist eine kostengünstige Lösung für Entwickler, kleine Unternehmen und Hobbyisten. Diese Anleitung führt Sie durch die Einrichtung von virtuellen Hosts in Apache und Nginx , um mehrere Websites auf demselben Server zu hosten. Am Ende dieses Tutorials können Sie Ihren Server so konfigurieren, dass er mehrere Domains oder Subdomains effizient verarbeitet.
Frühere Artikel:
01. Einführung in Ubuntu Server – SysOSX: AI & Cloud
02. So richten Sie Ihren ersten Ubuntu-Server ein: Ein Leitfaden für Einsteiger – SysOSX: AI & Cloud
03. Die Linux-Befehlszeile für Ubuntu Server meistern – SysOSX: AI & Cloud
05. Netzwerkgrundlagen für Ubuntu Server: Ein umfassender Leitfaden – SysOSX: AI & Cloud
07.Ubuntu Server patchen und aktualisieren: Ein umfassender Leitfaden – SysOSX: AI & Cloud
09. Auditing und Protokollierung von Ubuntu-Servern
10. Tools zur Systemüberwachung für Ubuntu Server: Ein umfassender Leitfaden – SysOSX: AI & Cloud
12. Audit und Compliance für Ubuntu Server: Best Practices – SysOSX: AI & Cloud
Voraussetzungen
Um dieser Anleitung zu folgen, stellen Sie sicher, dass Sie Folgendes haben:
- Ein Ubuntu-Server (Version 20.04 oder höher wird empfohlen).
- Ein Benutzerkonto mit
sudoBerechtigungen. - Mehrere Domainnamen, die auf die IP-Adresse Ihres Servers verweisen.
- Grundkenntnisse in Linux-Befehlen.
Teil 1: Mehrere Websites mit Apache hosten
Schritt 1: Apache-Webserver installieren
Falls Apache noch nicht installiert ist, führen Sie den folgenden Befehl aus:
sudo apt update && sudo apt install apache2 -y
Schritt 2: Virtuelle Hosts für jede Website einrichten
Apache verwendet virtuelle Hosts, um mehrere Websites von einem Server aus bereitzustellen. Jede Website erhält ihre eigene Virtual-Host-Konfigurationsdatei.
Verzeichnisse für Websites erstellen
- Erstellen Sie separate Verzeichnisse für jede Website:
sudo mkdir -p /var/www/website1.com /var/www/website2.com
- Weisen Sie den Besitz dieser Verzeichnisse Ihrem Benutzerkonto zu:
sudo chown -R $USER:$USER /var/www/website1.com /var/www/website2.com
Virtual-Host-Konfigurationsdateien erstellen
- Erstellen Sie eine Konfigurationsdatei für die erste Website:
sudo nano /etc/apache2/sites-available/website1.com.conf
- Fügen Sie die folgende Konfiguration hinzu:
<VirtualHost *:80>
ServerName website1.com
ServerAlias www.website1.com
DocumentRoot /var/www/website1.com
ErrorLog ${APACHE_LOG_DIR}/website1_error.log
CustomLog ${APACHE_LOG_DIR}/website1_access.log combined
</VirtualHost>
- Erstellen Sie eine Konfigurationsdatei für die zweite Website:
sudo nano /etc/apache2/sites-available/website2.com.conf
- Fügen Sie die folgende Konfiguration hinzu:
<VirtualHost *:80>
ServerName website2.com
ServerAlias www.website2.com
DocumentRoot /var/www/website2.com
ErrorLog ${APACHE_LOG_DIR}/website2_error.log
CustomLog ${APACHE_LOG_DIR}/website2_access.log combined
</VirtualHost>
Virtuelle Hosts aktivieren
- Aktivieren Sie die Virtual-Host-Konfigurationen:
sudo a2ensite website1.com.conf
sudo a2ensite website2.com.conf
- Laden Sie Apache neu, um die Änderungen anzuwenden:
sudo systemctl reload apache2
Schritt 3: Apache-Konfiguration testen
- Erstellen Sie eine einfache
index.htmlDatei für jede Website:
echo "<h1>Welcome to Website 1</h1>" > /var/www/website1.com/index.html
echo "<h1>Welcome to Website 2</h1>" > /var/www/website2.com/index.html
- Besuchen Sie
http://website1.comundhttp://website2.comin Ihrem Browser, um die Einrichtung zu überprüfen.

Schritt 4: Websites mit SSL/TLS absichern
Certbot installieren
Installieren Sie Certbot mit dem Apache-Plugin:
sudo apt install certbot python3-certbot-apache -y
SSL-Zertifikate erhalten
Führen Sie Certbot für jede Website aus:
sudo certbot --apache -d website1.com -d www.website1.com
sudo certbot --apache -d website2.com -d www.website2.com
Certbot konfiguriert SSL für beide Websites automatisch und leitet HTTP-Traffic auf HTTPS um.
Teil 2: Mehrere Websites mit Nginx hosten
Schritt 1: Nginx-Webserver installieren
Falls Nginx noch nicht installiert ist, führen Sie Folgendes aus:
sudo apt update && sudo apt install nginx -y
Schritt 2: Serverblöcke für jede Website einrichten
Nginx verwendet Serverblöcke (ähnlich wie virtuelle Hosts in Apache), um mehrere Websites von einem Server aus bereitzustellen.
Verzeichnisse für Websites erstellen
- Erstellen Sie separate Verzeichnisse für jede Website:
sudo mkdir -p /var/www/website1.com /var/www/website2.com
- Weisen Sie den Besitz dieser Verzeichnisse Ihrem Benutzerkonto zu:
sudo chown -R $USER:$USER /var/www/website1.com /var/www/website2.com
Serverblock-Konfigurationsdateien erstellen
- Erstellen Sie eine Konfigurationsdatei für die erste Website:
sudo nano /etc/nginx/sites-available/website1.com
- Fügen Sie die folgende Konfiguration hinzu:
server {
listen 80;
server_name website1.com www.website1.com;
root /var/www/website1.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
error_log /var/log/nginx/website1_error.log;
access_log /var/log/nginx/website1_access.log;
}
- Erstellen Sie eine Konfigurationsdatei für die zweite Website:
sudo nano /etc/nginx/sites-available/website2.com
- Fügen Sie die folgende Konfiguration hinzu:
server {
listen 80;
server_name website2.com www.website2.com;
root /var/www/website2.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
error_log /var/log/nginx/website2_error.log;
access_log /var/log/nginx/website2_access.log;
}
Serverblöcke aktivieren
- Erstellen Sie symbolische Links, um die Serverblöcke zu aktivieren:
sudo ln -s /etc/nginx/sites-available/website1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/website2.com /etc/nginx/sites-enabled/
- Testen Sie die Nginx-Konfiguration:
sudo nginx -t
- Laden Sie Nginx neu, um die Änderungen anzuwenden:
sudo systemctl reload nginx
Schritt 3: Nginx-Konfiguration testen
- Erstellen Sie eine einfache
index.htmlDatei für jede Website:
echo "<h1>Welcome to Website 1</h1>" > /var/www/website1.com/index.html
echo "<h1>Welcome to Website 2</h1>" > /var/www/website2.com/index.html
- Besuchen Sie
http://website1.comundhttp://website2.comin Ihrem Browser, um die Einrichtung zu überprüfen.
Schritt 4: Websites mit SSL/TLS absichern
Certbot installieren
Installieren Sie Certbot mit dem Nginx-Plugin:
sudo apt install certbot python3-certbot-nginx -y
SSL-Zertifikate erhalten
Führen Sie Certbot für jede Website aus:
sudo certbot --nginx -d website1.com -d www.website1.com
sudo certbot --nginx -d website2.com -d www.website2.com
Certbot konfiguriert SSL für beide Websites automatisch und leitet HTTP-Traffic auf HTTPS um.
Referenzen
Fazit
Das Hosten mehrerer Websites auf einem einzigen Ubuntu-Server ist eine praktische und kostengünstige Möglichkeit, Webanwendungen oder Domains zu verwalten. Ob Sie Apache oder Nginx verwenden – der Prozess umfasst das Einrichten von Verzeichnissen, das Konfigurieren virtueller Hosts oder Serverblöcke und das Absichern Ihrer Websites mit SSL/TLS-Zertifikaten über Certbot. Wenn Sie dieser Anleitung folgen, können Sie mehrere Domains oder Subdomains effizient hosten und sicherstellen, dass Ihr Server für Skalierbarkeit und Sicherheit optimiert ist.
Sowohl Apache als auch Nginx sind leistungsstarke Webserver, und die Wahl zwischen ihnen hängt oft von Ihren spezifischen Anforderungen ab. Apache bietet umfangreiche Konfigurationsoptionen und Kompatibilität, während Nginx durch Leistung und die Verarbeitung gleichzeitiger Verbindungen glänzt. Wofür Sie sich auch entscheiden – diese Anleitung vermittelt Ihnen das Grundlagenwissen, um mehrere Websites effektiv zu verwalten.
Freuen Sie sich auf das nächste Thema: Speicher und Festplatten auf einem Ubuntu-Server verwalten In diesem kommenden Leitfaden erfahren Sie, wie Sie die Datenträgerinitialisierung konfigurieren, Partitionen für verschiedene Dateisysteme erstellen und Datenträger erweitern, einschließlich des Einbindens in das Dateisystem. Verpassen Sie es nicht!
7 thoughts on “14. Host Multiple Websites on a single Ubuntu Server: Useful tips”