Erstellen von namens- und IP-basierten virtuellen Apache-Hosts unter Linux
Virtuelles Hosting ist ein Konzept, bei dem mehrere Websites oder Domains auf einem einzigen Server gehostet werden, um den Ressourcenaufwand und die Betriebskosten eines Unternehmens oder einer Organisation zu reduzieren.
Der Apache-Webserver vereinfacht das Hosten mehrerer Websites, indem er es Systemadministratoren ermöglicht, virtuelle Hosts für jede Website einfach zu konfigurieren. Virtuelles Hosting kann entweder IP-basiert oder namensbasiert sein.
In diesem Tutorial untersuchen wir, wie Sie virtuelles Hosting in RHEL-basierten Distributionen wie Fedora, CentOS Stream, Rocky Linux und Alma Linux einrichten, indem Sie sowohl IP-basierte als auch namensbasierte virtuelle Hosts in Linux verwenden.
Die Konzepte von Shared Web Hosting und Reseller Web Hosting basieren hauptsächlich auf dieser Funktion von Apache.
Arten von Apache Virtual Hosting unter Linux
Es gibt zwei Arten von virtuellem Hosting, die mit Apache verfügbar sind.
Namensbasiertes virtuelles Hosting
Bei dieser Art des Hostings können mehrere Domains oder Websites mit nur einer einzigen IP-Adresse auf einem einzigen Server gehostet werden. Einfach ausgedrückt, teilen sich alle Domains eine einzige IP-Adresse. Dies ist der am einfachsten zu konfigurierende virtuelle Hosting-Typ, da Sie lediglich die Domänennamen der IP-Adresse zuordnen und dann die virtuellen Apache-Hosts für jeden der Domänennamen konfigurieren müssen.
IP-basiertes virtuelles Hosting
Beim IP-basierten virtuellen Hosting wird jeder Domain eine eindeutige IP-Adresse zugewiesen. Diese IP-Adressen können mit mehreren NIC-Karten oder einer einzelnen NIC-Karte an den Server angehängt werden.
Testumgebung
- Betriebssystem – Fedora 34
- Anwendung – Apache-Webserver
- IP-Adresse – 192.168.2.105
- IP-Adresse – 192.168.2.106
- Domäne – www.mydomain1.com
- Domäne – www.mydomain2.com
So richten Sie IP-basierte und namensbasierte virtuelle Apache-Hosts ein
Bevor Sie beginnen, stellen Sie sicher, dass der Apache-Webserver auf Ihrem System installiert ist, indem Sie den Befehl dnf verwenden, wie gezeigt.
$ sudo dnf install httpd -y
Namensbasiertes virtuelles Hosting einrichten
Der erste Schritt beim Einrichten von namensbasiertem virtuellem Hosting besteht darin, die Auflösung des Domänennamens in der Datei /etc/hosts einzurichten. Führen Sie daher die folgenden Befehle als Root-Benutzer aus, um die Domänennameneinträge hinzuzufügen, die auf die IP-Adresse des Hosts verweisen.
$ echo '192.168.2.105 www.mydomain1.com' >> /etc/hosts
echo '192.168.2.105 www.mydomain2.com' >> /etc/hosts
Der nächste Schritt besteht darin, ein Verzeichnis zu erstellen, das die Website-Dateien enthält. Daher erstellen wir zwei Verzeichnisse für die virtuellen Hosts im Document Root, dem Ordner /var/www/html in der Apache-Konfiguration.
$ sudo mkdir /var/www/html/mydomain1.com/
sudo mkdir /var/www/html/mydomain2.com/
Der nächste Schritt besteht darin, die virtuelle Hostdatei zu ändern, die Apache anweist, die IP anzuweisen, auf eingehende Apache-Webserver-Anfragen für alle Domänennamen zu warten. Öffnen Sie daher die Apache-Konfigurationsdatei mit Ihrem bevorzugten Texteditor.
$ sudo vim /etc/httpd/conf/httpd.conf
Fügen Sie die folgenden Codeblöcke für die beiden virtuellen Hosts hinzu.
<VirtualHost 192.168.2.105:80>
ServerName mydomain1.com
ServerAlias www.mydomain1.com
DocumentRoot /var/www/html/mydomain1.com/
ErrorLog logs/www.mydomain1.com-error_log
CustomLog logs/www.mydomain1.com-access_log common
</VirtualHost>
<VirtualHost 192.168.2.105:80>
ServerName mydomain2.com
ServerAlias www.mydomain2.com
DocumentRoot /var/www/html/mydomain2.com
ErrorLog logs/www.mydomain2.com-error_log
CustomLog logs/www.mydomain2.com-access_log common
</VirtualHost>
Speichern Sie die Änderungen und beenden Sie den Vorgang. Überprüfen Sie als Nächstes, ob die Syntax in Ordnung ist und keine Fehler vorhanden sind.
$ httpd -t
Als nächstes erstellen wir HTML-Testseiten für jede der Domains und fügen einige Inhalte hinzu, um zu bestätigen, ob alles über den Browser ordnungsgemäß funktioniert.
Für mydomain1.com
Erstellen Sie eine index.html Datei im Verzeichnis mydomain1.com.
$ sudo vim /var/www/html/mydomain1.com/index.html
Fügen Sie die folgenden Zeilen ein.
<html>
<head>
<title>My sample site</title>
</head>
<body>
<h1>Success! Welcome to mydomain1.com.</h1>
</body>
</html>
Speichern Sie die Änderungen und beenden Sie die Datei.
Für mydomain2.com
Erstellen Sie eine index.html Datei in mydomain2.com Verzeichnis.
$ sudo vim /var/www/html/mydomain2.com/index.html
Fügen Sie die folgenden Zeilen ein.
<html>
<head>
<title>My sample site</title>
</head>
<body>
<h1>Success! Welcome to mydomain2.com.</h1>
</body>
</html>
Speichern Sie die Änderungen und beenden Sie die Datei.
Starten Sie nun den Apache-Webserver und bestätigen Sie, dass er läuft.
$ sudo systemctl start httpd
sudo systemctl status httpd
Wenn Sie eine Firewall aktiviert haben, lassen Sie den HTTP- und HTTPS-Datenverkehr (falls erforderlich) zu.
$ sudo firewall-cmd --add-service=http --zone=public --permanent
sudo firewall-cmd --add-service=https --zone=public --permanent
sudo firewall-cmd --reload
Testen Sie nun die Domains über einen Browser.
Einrichten von IP-basiertem virtuellem Hosting Linux
Beim IP-basierten virtuellen Hosting werden, wie der Name schon sagt, mehrere IP-Adressen verwendet, die Ihrem Linux-Server zugewiesen sind. In den meisten Fällen sind zwei oder mehr NIC-Karten an Ihr System angeschlossen, um mehrere IP-Adressen bereitzustellen.
Das Ziel des IP-basierten virtuellen Hostings besteht darin, jeder Domain eine eindeutige IP-Adresse zuzuweisen, die von keiner anderen Domain verwendet wird.
Dies ist ideal für Situationen, in denen Websites mit einem SSL-Zertifikat (mod_ssl) verschlüsselt sind oder auf verschiedenen Ports ausgeführt werden. In unserem Setup haben wir zwei NIC-Adapter.
Um die IP-Konfiguration auf Ihrem System anzuzeigen, führen Sie den Befehl ifconfig oder ip a aus.
$ ifconfig
OR
ip addr
Unser Server verfügt über zwei IP-Adressen, die jeweils einer Netzwerkkarte zugeordnet sind. Die IP 192.168.2.106 ist ens160 und 192.168.2.105 ens224 zugewiesen.
Lassen Sie uns noch einmal die Datei httpd.conf konfigurieren.
$ sudo vim /etc/httpd/conf/httpd.conf
Erstellen Sie virtuelle Hosts für beide Domänen, wie gezeigt. Stellen Sie sicher, dass jede IP-Adresse der jeweiligen Konfiguration des virtuellen Hosts zugewiesen ist.
<VirtualHost 192.168.2.105:80>
ServerName mydomain1.com
ServerAlias www.mydomain1.com
DocumentRoot /var/www/html/mydomain1.com/
ErrorLog logs/www.mydomain1.com-error_log
CustomLog logs/www.mydomain1.com-access_log common
</VirtualHost>
<VirtualHost 192.168.2.106:80>
ServerName mydomain2.com
ServerAlias www.mydomain2.com
DocumentRoot /var/www/html/mydomain2.com
ErrorLog logs/www.mydomain2.com-error_log
CustomLog logs/www.mydomain2.com-access_log common
</VirtualHost>
Speichern und beenden Sie die Konfigurationsdatei. Ändern Sie als Nächstes die Datei /etc/hosts wie gezeigt.
$ echo '192.168.2.105 www.mydomain1.com' >> /etc/hosts
echo '192.168.2.106 www.mydomain2.com'>> /etc/hosts
Bestätigen Sie die Eingaben:
$ cat /etc/hosts
192.168.2.105 www.mydomain1.com
192.168.2.106 www.mydomain2.com
Starten Sie als Nächstes den Apache-Webserver neu, damit die Änderungen wirksam werden.
$ sudo systemctl restart httpd
Testen Sie abschließend Ihr IP-basiertes virtuelles Hosting-Setup, indem Sie auf die URLs wie gezeigt zugreifen.
http://192.168.2.105
http://192.168.2.106
Dieser Test bestätigt, dass das IP-basierte virtuelle Hosting genau wie erwartet funktioniert!
Schlussfolgerung
Und das war's für diesen Vortrag. Wir hoffen, dass Sie beide Arten von virtuellem Hosting nahtlos und ohne große Probleme konfigurieren können. Wir freuen uns über Ihr Feedback zu diesem Leitfaden.









