Apache HTTP

So konfigurieren Sie Apache VirtualHost unter Ubuntu 18.04 LTS

So konfigurieren Sie Apache VirtualHost unter Ubuntu 18.04 LTS
Apache VirtualHost wird verwendet, um mehrere Websites auf demselben Apache-Server auszuführen. Es ist eine großartige Funktion des Apache 2-Webservers für die Bereitstellung von Websites mit hoher Dichte auf einem einzigen Server. Apache hat zwei Arten von VirtualHost-Konfigurationen, IP-basierter VirtualHost und namensbasierter VirtualHost.IP-basierter virtueller Host: In IP-basiertem VirtualHost hat ein Apache-Server mehrere IP-Adressen und antwortet mit verschiedenen Websites basierend auf der IP-Adresse.

Abb. 1: Apache IP basierter VirtualHost.

Namensbasierter virtueller Host: In namensbasiertem VirtualHost hat ein Apache-Server eine einzelne IP-Adresse und mehrere Domänennamen, die für jede Website konfiguriert sind. In einem DNS-Server wird jedem dieser Domänennamen die IP-Adresse des Apache-Servers zugewiesen. Je nachdem welchen Domainnamen der Client verwendet hat, gibt der Server unterschiedliche Websites zurück.

Abb. 2: Apache-Namensbasierter VirtualHost.

In diesem Artikel zeige ich Ihnen, wie Sie den auf dem Apache-Namen basierenden VirtualHost konfigurieren. Ich werde Ubuntu 18 verwenden.04 LTS für die Vorführung. Aber es sollte auf jeder modernen Linux-Distribution mit wenig bis gar keiner Änderung funktionieren. Also lasst uns anfangen.

Installieren des Apache 2-Webservers:

Der Apache 2-Webserver ist im offiziellen Paket-Repository von Ubuntu 18 verfügbar.04 LTS. Sie können es also einfach mit dem APT-Paketmanager installieren.

Aktualisieren Sie zunächst den Cache des APT-Paket-Repositorys mit dem folgenden Befehl:

$ sudo apt-Update

Führen Sie nun den folgenden Befehl aus, um den Apache 2-Webserver zu installieren:

$ sudo apt install Apache2

Jetzt drücken ja und drücke dann weitermachen.

Apache 2 Webserver sollte installiert sein.

DNS konfigurieren:

Jetzt müssen Sie den DNS-Server so konfigurieren, dass er die Domänennamen, die Sie für VirtualHost verwenden möchten, der IP-Adresse Ihres Apache-Servers zuordnet.

Die IP-Adresse Ihres Apache-Servers finden Sie mit folgendem Befehl:

$ ip a | egrep "inet"

Wie Sie sehen, lautet die IP-Adresse in meinem Fall case 192.168.21.166. Bei dir wird es anders sein. Stellen Sie also sicher, dass Sie es von nun an durch Ihres ersetzen.

Wenn Sie lernen möchten, wie Sie Apache VirtualHost lokal konfigurieren, können Sie das /etc/hosts Datei für lokale DNS/Namensauflösung.

Um die lokale DNS-Auflösung zu konfigurieren, öffnen Sie das /etc/hosts Datei mit nano wie folgt:

$ sudo nano /etc/hosts

Fügen Sie nun die im Screenshot unten markierte Zeile zur Datei hinzu. Dann drücken + x gefolgt von ja und um die Datei zu speichern.

Jetzt sollte die lokale Namensauflösung funktionieren.

Verzeichnisstrukturen:

Ich möchte alle Website-Daten meines Apache VirtualHost in einem bestimmten Verzeichnis speichern /www. Hier möchte ich für jeden Benutzer ein Verzeichnis erstellen. Jeder Benutzer hat sein eigenes public_html/ und Protokolle/ auch Verzeichnis.

Zum Beispiel für 3 Benutzer Bob (Beispiel1.com), Alice (Beispiel2.com), linda (beispiel3.com), die Verzeichnisstruktur ist wie folgt:

/www
- Beispiel 1.com/
- www/
- public_html/
- Index.html
- Protokolle/
- Beispiel2.com/
- www/
- public_html/
- Index.html
- Protokolle/
- Beispiel3.com/
- www/
- public_html/
- Index.html
- Protokolle/

Eine einfache Möglichkeit dazu besteht darin, ein Vorlagen- oder Skelettverzeichnis zu erstellen und die Verzeichnisstruktur dort abzulegen directory.  Erstellen Sie dann jeden Benutzer mit diesem Skelettverzeichnis.

Kopieren Sie zuerst den Inhalt des Standard-Skelett-Verzeichnisses /etc/skel in ein anderes Verzeichnis /etc/skel-www wie folgt:

$ sudo cp -rv /etc/skel /etc/skel-www

Navigieren Sie nun wie folgt zum neuen Skelettverzeichnis:

$ cd /etc/skel-www

Erstellen Sie dann die gewünschte Verzeichnisstruktur innerhalb des Skelettverzeichnisses wie folgt:

$ sudo mkdir -p www/public_html,logs

Sie können auch einen Standard erstellen Index.html Datei in der public_html/ Verzeichnis, wenn du willst.

$echo"

Es klappt

" | sudo tee www/public_html/index.html

Erstellen Sie nun die /www Verzeichnis mit folgendem Befehl:

$ sudo mkdir /www

Erstellen von Benutzern:

Jetzt können Sie den Benutzer erstellen Bob für www.Beispiel 1.com wie folgt:

$ sudo useradd --create-home --home-dir /www/example1.com --shell
/bin/bash --gid www-data --skel /etc/skel-www bob

Erstellen Sie auf die gleiche Weise den Benutzer Alice für www.Beispiel2.com wie folgt:

$ sudo useradd --create-home --home-dir /www/example2.com --shell /bin/bash
--gid www-data --skel /etc/skel-www alice

Erstellen Sie erneut den Benutzer linda für www.Beispiel3.com wie folgt:

$ sudo useradd --create-home --home-dir /www/example3.com --shell /bin/bash
--gid www-data --skel /etc/skel-www linda

Hier habe ich die primäre Gruppe jedes Benutzers zugewiesen www-daten. Standardmäßig wird der Apache-Server als diese Gruppe ausgeführt. Wenn ich das nicht getan hätte, kann der Apache-Server nicht auf die Dateien im public_html/ Verzeichnis und erstellen Sie Protokolldateien im Protokolle/ Verzeichnis.

Konfigurieren von Apache VirtualHost:

Jetzt können Sie Apache VirtualHost für 3 Benutzer konfigurieren Bob (www.Beispiel 1.com), Alice (www.Beispiel2.com) und linda (www.Beispiel3.com).

Das standardmäßige Apache-Site-Konfigurationsverzeichnis auf Ubuntu ist /etc/apache2/sites-verfügbar.

Navigieren Sie nun zum Verzeichnis /etc/apache2/sites-verfügbar/ wie folgt.

$ cd /etc/apache2/sites-verfügbar/

Erstellen Sie zunächst eine neue Konfigurationsdatei für bob www.Beispiel 1.com.conf wie folgt:

$ sudo nano www.Beispiel 1.com.conf

Ein Texteditor sollte geöffnet werden.

Geben Sie nun die folgenden Zeilen ein.

Beispiel für Servername1.com
ServerAlias ​​www.Beispiel 1.com
DocumentRoot "/www/example1.com/www/public_html"

Optionen -FollowSymLinks +MultiViews +Indizes
ZulassenAlles überschreiben
Fordern Sie alle gewährten
ErrorLog "/www/example1.com/www/logs/error.Log"
CustomLog "/www/example1.com/www/logs/access.log" kombiniert

HINWEIS: Ändern Sie die fett gedruckten Texte entsprechend Ihren Anforderungen.

Zum Schluss die Konfigurationsdatei www.Beispiel.com.conf sollte wie folgt aussehen. Drücken Sie + x gefolgt von y und um die Konfigurationsdatei zu speichern.

um einfach die Konfigurationsdatei zu kopieren für Bob (www.Beispiel 1.com.conf) und nehmen Sie die kleinen Änderungen vor, die erforderlich sind.

Kopieren Sie die Konfigurationsdatei von Bob zum Alice und linda mit folgenden Befehlen:

$ sudo cp -v www.Beispiel 1.com.conf www.Beispiel2.com.conf
$ sudo cp -v www.Beispiel 1.com.conf www.Beispiel3.com.conf

Bearbeiten Sie nun die Konfigurationsdatei von Alice wie folgt:

$ sudo nano www.Beispiel2.com.conf

Ändern Sie nun alle Vorkommen von Beispiel 1 zu Beispiel2. Dann speichere die Datei.

Machen Sie dasselbe für linda.

$ sudo nano www.Beispiel3.com.conf

Alle Vorkommen von ändern Beispiel 1 zu Beispiel3 und speichere die Datei.

Aktivieren von VirtualHost-Konfigurationen:

Deaktivieren Sie nun die Apache-Standard-Website-Konfiguration wie folgt:

$ sudo a2dissite 000-default.conf

Aktivieren Sie nun die VirtualHost-Konfigurationen www.Beispiel 1.com.conf, www.Beispiel2.com.conf, www.Beispiel3.com.conf wie folgt:

$ sudo a2ensite www.Beispiel 1.com.conf www.Beispiel2.com.conf www.Beispiel3.com.conf

Starten Sie abschließend den Apache-Dienst wie folgt neu:

$ sudo systemctl Neustart von Apache2

Testen von VirtualHosts:

Versuchen Sie nun, auf die Websites www . zuzugreifen.Beispiel 1.com, www.Beispiel2.com, www.Beispiel3.com

Wie Sie sehen können, funktionieren alle diese Websites wie erwartet.

HINWEIS: Ich habe die Standardseite geändert Index.html für jede Website, damit es zu Testzwecken für jede Website ein wenig anders ist. Andernfalls können Sie nicht feststellen, ob die VirtualHost-Konfiguration funktioniert oder nicht.

So konfigurieren Sie den namensbasierten Apache VirtualHost unter Ubuntu 18.04 LTS. Danke, dass du diesen Artikel gelesen hast.

Beste Spiele zum Spielen mit Handtracking
Oculus Quest hat kürzlich die großartige Idee des Hand-Trackings ohne Controller vorgestellt. Mit einer ständig steigenden Anzahl von Spielen und Akti...
So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...
Top 5 Karten zur Spielaufnahme
Wir alle haben Streaming-Gameplays auf YouTube gesehen und geliebt. PewDiePie, Jakesepticye und Markiplier sind nur einige der Top-Gamer, die Millione...