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. 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. 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`. .. image:: code/netzwerk-conf-webserver.png :width: 600 Mit dem Paketmanager `apt` haben wir anschließen Apache installiert und gestartet. .. code-block:: bash 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. .. code-block:: bash cat << EOF > /var/www/html/index.html Begrüßung

Willkommen auf unserer Website!

Sehr geehrter Herr Brovkov,

Sehr geehrter Herr Högl,

Wir freuen uns sehr, Sie auf unserer Website begrüßen zu dürfen.

EOF 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: .. image:: code/netzwerk-conf-proxyserver-portweiterleitung.png :width: 600 Für die Installation muss das entsprechende Repository für `apt` als Quelle hinzugefügt werden, anschließend kann Caddy installiert werden. .. code-block:: bash 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: .. code-block:: 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.