Hosten Sie mehrere Domains auf einem Server oder einer IP mit Apache oder Nginx

Entdecken Sie, wie Sie Apache und Nginx konfigurieren, um mehrere Webpräsenzen zu verwalten.

Das Hosting von Webseiten auf einem Cloud-Server bietet im Gegensatz zu Shared Hosting eine erheblich höhere Flexibilität. Sie haben die Freiheit, Software nach Bedarf zu installieren, Ressourcen dynamisch anzupassen und Konfigurationen für optimale Leistung und Kosteneffizienz vorzunehmen.

Wenn Sie mehrere Unternehmenswebsites betreiben und diese nicht auf verschiedenen Servern hosten möchten, können Sie die Virtual-Host-Funktionalität von Webservern nutzen. Betrachten wir dieses spezifische Szenario genauer.

Ich habe zwei Webseiten, die ich auf einer einzigen Cloud-VM (Virtuelle Maschine) hosten möchte.

Bevor wir mit der Umsetzung beginnen, ist es wichtig zu verstehen, wie diese Methode funktioniert.

Das Konzept, mehrere Websites auf einer einzigen Webserver-Instanz zu betreiben, wird als Virtual Hosting bezeichnet. Es wird in der Konfigurationsdatei in Verbindung mit der jeweiligen URL definiert. Wenn eine Anfrage an eine dieser konfigurierten URLs gesendet wird, liefert der Webserver die entsprechenden Daten aus dem zugehörigen Document Root.

Einrichtung von Virtual Hosts in Apache für das Hosting mehrerer Domains

  • Melden Sie sich am Apache HTTP Server an.
  • Navigieren Sie zum Konfigurationsverzeichnis von Apache. (In Standardinstallationen finden Sie dies unter /etc/httpd/conf/httpd.conf).
  • Erstellen Sie eine Sicherungskopie der Datei httpd.conf.
  • Definieren Sie einen VirtualHost-Container für jede Domain. Hier ist ein Beispiel für zwei Domains:
<VirtualHost *:80>
  ServerAdmin [email protected]
    DocumentRoot /opt/htdocs/lab
    ServerName lab.wdzwdz.com
    ErrorLog logs/lab.wdzwdz.com-error_log
    CustomLog logs/lab.wdzwdz.com-access_log common
  </VirtualHost>

  <VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /opt/htdocs/gf-dev
    ServerName gf.dev
    ErrorLog logs/gf.dev-error_log
    CustomLog logs/gf.dev-access_log common
  </VirtualHost>

Hinweis: Passen Sie die Werte für ServerAdmin, DocumentRoot, ServerName, ErrorLog und CustomLog entsprechend Ihren spezifischen Anforderungen an.

  • Starten Sie den Apache HTTP-Server neu und testen Sie beide URLs.

Einrichten von Virtual Hosts in Nginx zum Hosten mehrerer Domains

  • Melden Sie sich beim Nginx-Server an.
  • Gehen Sie zu dem Installationsverzeichnis von Nginx. (Der Standardpfad ist /etc/nginx/).

Es gibt verschiedene Möglichkeiten, dies zu erreichen. Sie können entweder die Hauptkonfigurationsdatei nginx.conf bearbeiten oder eine separate benutzerdefinierte Datei verwenden, falls Sie diese angelegt haben. Alternativ können Sie auch eine neue .conf-Datei im conf.d-Ordner erstellen. Wählen Sie die für Sie am besten geeignete Methode und sichern Sie die bestehende Konfigurationsdatei, bevor Sie Änderungen vornehmen.

  • Erstellen Sie für jede URL einen Serverblock, wie im folgenden Beispiel:
server {
  listen 80;
    root /opt/htdocs/lab;
  index index.html index.htm;
    server_name lab.wdzwdz.com;
    location / {
        try_files $uri $uri/ =404;
    }
  }

  server {
    listen 80;
    root /opt/htdocs/gf-dev;
    index index.html index.htm;
    server_name gf.dev;
    location / {
        try_files $uri $uri/ =404;
    }
  }

Hinweis: Passen Sie die Werte für root und server_name entsprechend Ihren spezifischen Anforderungen an.

  • Starten Sie Nginx neu und überprüfen Sie die Funktionalität beider URLs.

Vergessen Sie nicht, die DNS-Einträge Ihrer URLs so zu konfigurieren, dass sie auf die IP-Adresse Ihres Servers verweisen. Nach Abschluss dieser Schritte sollten Sie in der Lage sein, auf Ihre Webseiten über die von Ihnen konfigurierten URLs zuzugreifen.

Fazit

Dies ist eine kurze Anleitung zum Hosten mehrerer Domains auf einer einzigen Webserverinstanz wie Apache oder Nginx. Sobald Ihre Webseiten online sind, sollten Sie sicherstellen, dass diese auf Sicherheitslücken getestet werden.

Hat Ihnen dieser Artikel gefallen? Teilen Sie ihn gerne mit anderen!