2.4. Projekt

In dem Projekt soll der selbe Versuchsaufbau wie in der letzten Woche verwendet werden. Es soll ein Proxy aufgesetzt werden, der auf einen Apache-Server verweist. Der Unterschied besteht darin, dass die beiden Server in einer virtuellen Umgebung laufen. Es sollen zwei VMs erstellt werden, eine mit einem Proxy und eine mit Apache. Die VMs sollen minimal gehalten werden, um den Unterschied in der Ressourcennutzung zwischen Docker und VMs zu verdeutlichen.

2.4.1. VitrualBox Konfiguration

Ähnlich zu dem Docker Versuch, haben wir das extra Netzwerk „dvanet“ in VirtualBox erstellt, dieses soll später für die Kommmunikation zwischen den beiden VMs dienen.

2.4.2. Apache-Webserver

Für den Webserver haben wir als Basis ein Ubuntu-Image gewählt. Wir haben diese Distribution gewählt, da sie die Ressourcenbelastung einigermaßen gering hält und weit verbreitet ist. Mit der offiziellen .iso-Datei von Ubuntu haben wir eine VM mit minimalen Ressourcen erstellt.

Via des ersten Netzwerk Adapters bekommt die VM über NAT Zugang zum Netzwerk, der zweite Adapter dient der Kommunikation zwischen den VMS, hier verwenden wir das oben erwähnte Netzwerk dvanet.

../_images/netzwerk-conf-webserver.png

Mit dem Paketmanager apt haben wir anschließen Apache installiert und gestartet.

sudo su -
apt-get update
apt-get upgrade -y
apt-get install apache2

Für einen fairen Vergleich soll der Inhalt des Webservers exakt gleich sein, also haben wir auf der VM noch die selbe index.html hinterlegt.

cat << EOF > /var/www/html/index.html
<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <title>Begrüßung</title>
</head>
<body>
    <h1>Willkommen auf unserer Website!</h1>
    <p>Sehr geehrter Herr Brovkov,</p>
    <p>Sehr geehrter Herr Högl,</p>
    <p>Wir freuen uns sehr, Sie auf unserer Website begrüßen zu dürfen.</p>
</body>
</html>
EOF

2.4.3. Caddy-Proxyservice

Um den Apache-Server von außen erreichbar zu machen, haben wir eine zweite Ubuntu VM installiert und einen Caddy-Server aufgesetzt. Dieser dient als Reverse-Proxy und leitet die Anfragen an den Apache-Server weiter. Damit die VM als Reverse-Proxy für die Apache VM fungieren kann, müssen wir noch eine Portweiterleitung vom Host zu der VM Konfigurieren:

../_images/netzwerk-conf-proxyserver-portweiterleitung.png

Für die Installation muss das entsprechende Repository für apt als Quelle hinzugefügt werden, anschließend kann Caddy installiert werden.

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

Damit Caddy wie gewünscht funktioniert muss eine kleine Konfiguration hinterlegt werden:

http://localhost {
    reverse_proxy 192.168.42.2:80
}

localhost {
        reverse_proxy 192.168.42.2:80
}

127.0.0.1 {
        reverse_proxy 192.168.42.2:80
}

Nach einem reload des Services kann nun, wie zuvor bei dem Docker Versuch, unter http://localhost:80/ die kleine index.html via des Proxies aufgerufen werden.