Dieser Artikel ist Teil der Apache Server Guide-Reihe:

  • Sicherung von Apache auf Ubuntu - Teil 1
  • Sicherung von Apache auf Ubuntu - Teil 2
  • Apache-Performance optimieren - Teil 1
  • Apache Performance optimieren - Teil 2
  • Einrichten von namensbasiertem Virtualhost Apache
  • Einrichten von IP und Port-Based Virtualhost in Apache
  • So richten Sie das Kennwortschutz-Webverzeichnis in Apache ein
  • Einrichten von Apache Server mit SSL-Unterstützung unter Ubuntu
  • Einrichten von Fail2ban, um Apache vor einem DDOS-Angriff zu schützen
  • Wie man Webdav mit Apache auf Ubuntu einrichtet
  • Überwachen Sie Apache Web Server mit Mod_status
  • So schützen Sie sich gegen DDoS mit Mod_evasive auf Apache Server

Virtual Hosting ist eine Methode zum Hosten mehrerer Websites auf einem einzelnen Server. Es gibt zwei Arten von virtuellem Hosting: Namenbasiertes virtuelles Hosting und IP-basiertes virtuelles Hosting. IP-basiertes virtuelles Hosting ist eine Technik, um verschiedene Anweisungen basierend auf der IP-Adresse und dem Port, auf dem eine Anfrage empfangen wird, anzuwenden. Sie können eine separate IP für jede Domäne auf einem einzelnen Server mithilfe von IP-basiertem virtuellem Hosting zuweisen. Meistens werden damit verschiedene Websites auf verschiedenen Ports oder IPs gehostet.

Hier werden wir "www.ipvhost1.com" auf IP "192.168.1.227", "www.ipvhost2.com" auf IP "192.168.1.228" und "www.portvhost.com" auf IP "192.168.1.228" hosten mit Port 8080.

Bedarf

  • Betriebssystem: Ubuntu Server 14.04 mit installiertem Apache
  • IP-Adresse1: 192.168.1.227
  • IP-Adresse2: 192.168.1.228
  • Domäne: www.ipvhost1.com
  • Domäne: www.ipvhost2.com
  • Domain: www.portvhost.com

Erstellen Sie mehrere IP-Adressen auf einer einzelnen Netzwerkschnittstelle

Um IP-basiertes virtuelles Hosting einzurichten, müssen Ihrem Linux-Computer mehr als eine IP-Adresse zugewiesen sein. Das Einrichten von mehreren IP-Adressen auf einer einzelnen Netzwerkschnittstelle wird als IP-Aliasing bezeichnet. IP Aliasing ist sehr nützlich, wenn Sie nur eine Netzwerkkarte haben.

Um dies zu tun, müssen Sie die Datei "/ etc / network / interfaces" bearbeiten.

 sudo nano / etc / Netzwerk / Schnittstellen 

Fügen Sie die folgenden Zeilen hinzu:

 auto eth0 iface eth0 inet statische Adresse 192.168.1.227 Netzmaske 255.255.255.0 Gateway 192.168.1.1 DNS-Nameserver 8.8.8.8 auto eth0: 1 iface eth0: 1 inet statische Adresse 192.168.1.228 Netzmaske 255.255.255.0 

Speichern und schließen Sie die Datei und starten Sie den Netzwerkdienst neu, damit diese Änderungen wirksam werden.

 sudo /etc/init.d/networking restart sudo ifup eth0: 1 

Richten Sie mehrere Instanzen von Apache ein

Standardmäßig hört Apache Port 80 ab. Für Port-basiertes virtuelles Hosting müssen Sie Apache anweisen, die IP "192.168.1.227" und "192.168.1.228" an Port 80 und IP "192.168.1.228" an Port 8080 zu hören.

Um mehrere Ports einzurichten, müssen Sie "/etc/apache2/ports.conf" bearbeiten.

 sudo nano /etc/apache2/ports.conf 

Fügen Sie die folgende Zeile hinzu:

 Höre 192.168.1.227:80 Höre 192.168.1.228:80 Höre 192.168.1.228:8080 

Speichern und schließen Sie die Datei und starten Sie Apache neu, damit diese Änderungen wirksam werden.

 sudo /etc/init.d/apache2 neustarten 

Erstellen Sie virtuelle Verzeichnisse

Zuerst müssen Sie eine Verzeichnisstruktur erstellen, die die Webseiten enthält. Dieses Verzeichnis wird als DocumentRoot für die Domäne bezeichnet.

Erstellen Sie drei Verzeichnisse für die Websites "www.ipvhost1.com", "www.ipvhost2.com" und "www.portvhost.com" unter Apache Standard DocumentRoot-Verzeichnis.

 sudo mkdir -p /var/www/html/www.ipvhost1.com sudo mkdir -p /var/www/html/www.ipvhost2.com sudo mkdir -p /var/www/html/www.portvhost.com 

Erstellen Sie Testwebseiten für jeden virtuellen Host

Erstellen Sie für jede Website eine Datei "index.html", die bestimmte IPs und Ports identifiziert.

Erstellen Sie eine index.html-Datei für den virtuellen Host "www.ipvhost1.com".

 sudo nano /var/www/html/www.ipvhost1.com/index.html 

Fügen Sie den folgenden Inhalt hinzu.

 www.ipvhost1.com 

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Erstellen Sie eine Datei "index.html" für den virtuellen Host "www.ipvhost2.com".

 sudo nano /var/www/html/www.ipvhost2.com/index.html 

Fügen Sie den folgenden Inhalt hinzu.

 www.ipvhost2.com 

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Erstellen Sie eine Datei "index.html" für den virtuellen Host "www.portvhost.com".

 sudo nano /var/www/html/www.portvhost.com/index.html 

Fügen Sie den folgenden Inhalt hinzu.

 www.portvhost.com 

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Eigentumsrechte und Berechtigungen einrichten

Standardmäßig wird der Apache-Dienst in Ubuntu als "www-data" -Benutzer ausgeführt. Sie müssen den Besitz dieser drei virtuellen Verzeichnisse in "www-data" ändern, damit Apache Daten lesen und schreiben kann.

Führen Sie dazu Folgendes aus:

 sudo chown -R www-data: www-data /var/www/html/www.ipvhost1.com sudo chown -R www-data: www-data /var/www/html/www.ipvhost2.com sudo chown -R www-daten: www-data /var/www/html/www.portvhost.com 

Außerdem müssen Sie sicherstellen, dass das Apache-Webstammverzeichnis (/ var / www / html) lesbar ist, so dass jeder Dateien daraus lesen kann.

 sudo chmod -R 755 / var / www / html 

Erstellen Sie virtuelle Hostdateien

Standardmäßig enthält Apache eine standardmäßige virtuelle Host-Datei namens "000-default.conf". Sie müssen diese virtuelle Host-Datei zuerst deaktivieren.

Führen Sie dazu den folgenden Befehl aus.

 sudo a2dissite 000-default.conf 

Der nächste Schritt besteht darin, für jede Website eine Konfigurationsdatei für den virtuellen Host zu erstellen. Der Name jeder Konfigurationsdatei muss mit ".conf" enden.

Erstellen Sie eine virtuelle Host-Datei für die Website "www.ipvhost1.com".

 sudo nano /etc/apache2/sites-available/www.ipvhost1.com.conf 

Fügen Sie den folgenden Inhalt hinzu.

 ServerAdmin [email protected] ServerName www.ipvhost1.com DocumentRoot /var/www/html/www.ipvhost1.com FehlerLog $ {APACHE_LOG_DIR} /www.ipvhost1.com_error.log CustomLog $ {APACHE_LOG_DIR} /www.ipvhost1.com_access. Protokoll kombiniert 

Speichern und schließen Sie die Datei.

Erstellen Sie eine virtuelle Host-Datei für die Website "www.ipvhost2.com".

 sudo nano /etc/apache2/sites-available/www.ipvhost2.com.conf 

Fügen Sie den folgenden Inhalt hinzu.

 ServerAdmin [email protected] ServerName www.ipvhost2.com DocumentRoot /var/www/html/www.ipvhost2.com FehlerLog $ {APACHE_LOG_DIR} /www.ipvhost2.com_error.log CustomLog $ {APACHE_LOG_DIR} /www.ipvhost2.com_access. Protokoll kombiniert 

Speichern und schließen Sie die Datei.

Erstellen Sie eine virtuelle Host-Datei für die Website "www.portvhost.com".

 sudo nano /etc/apache2/sites-available/www.portvhost.com.conf 

Fügen Sie den folgenden Inhalt hinzu.

 ServerAdmin [email protected] ServerName www.portvhost.com DocumentRoot /var/www/html/www.portvhost.com FehlerLog $ {APACHE_LOG_DIR} /www.portvhost.com_error.log CustomLog $ {APACHE_LOG_DIR} /www.portvhost.com_access. Protokoll kombiniert 

Speichern und schließen Sie die Datei.

Nach dem Erstellen der virtuellen Host-Dateien müssen Sie die virtuellen Hosts aktivieren.

Sie können dies tun, indem Sie ausführen.

 sudo a2ensite www.ipvhost1.com.conf sudo a2ensite www.ipvhost2.com.conf sudo a2ensite www.portvhost.com.conf 

Starten Sie den Apache-Dienst neu.

 sudo /etc/init.d/apache2 neustarten 

Virtuelle Hosts testen

Jetzt ist es Zeit, den IP Virtualhost zu testen. Öffnen Sie auf einem Computer Ihren Webbrowser und navigieren Sie zu den URLs "http://192.168.1.227:80" und "http://192.168.1.228:80". Sie sollten Demo-Beispielseiten für IP-basiertes virtuelles Hosting sehen, die wie folgt aussehen:

Um Port Virtual Host zu testen, öffnen Sie Ihren Webbrowser und navigieren Sie zur URL "http://192.168.1.228:8080". Sie sollten eine Beispieldemoseite für portbasiertes virtuelles Hosting sehen, die wie folgt aussieht:

Fazit

In diesem Post habe ich die Schritt-für-Schritt-Anleitung zum Erstellen und Aktivieren eines IP-basierten und portbasierten virtuellen Hosts auf dem Apache-Webserver gezeigt. Sie können problemlos viele Domänen auf demselben Server einrichten.