14. Mehrere Websites auf einem einzigen Ubuntu-Server hosten: Nützliche Tipps

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

04. Benutzer und Berechtigungen auf Ubuntu Server verwalten: Ein umfassender Leitfaden – SysOSX: AI & Cloud

05. Netzwerkgrundlagen für Ubuntu Server: Ein umfassender Leitfaden – SysOSX: AI & Cloud

06. Software auf Ubuntu Server installieren und verwalten: Ein vollständiger Leitfaden – SysOSX: AI & Cloud

07.Ubuntu Server patchen und aktualisieren: Ein umfassender Leitfaden – SysOSX: AI & Cloud

08. Ihren Ubuntu-Server absichern: Praktische Schritte zur Härtung und zum Schutz – 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

11. Zentrale Protokollierung für Ubuntu Server: Ein Leitfaden, den man gelesen haben muss – SysOSX: AI & Cloud

12. Audit und Compliance für Ubuntu Server: Best Practices – SysOSX: AI & Cloud

13. Ihren Ubuntu-Server für Hosting und Webanwendungen einrichten: Der ultimative Leitfaden – 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 sudo Berechtigungen.
  • 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.html Datei 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.com und http://website2.com in 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.html Datei 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.com und http://website2.com in 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!