Inhalt
Aufgabenstellung Übungszettel 3 - nginx Webserver
In dieser Übung ist eine nginx Webserver zu konfigurieren. Für die Übung werden Docker Container (nginx Webserver und PHP) bereitgestellt. Die Konfiguration dafür ist in der docker-compose.yaml Datei definiert. Um die Container zu starten kann in der Kommandozeile der Befehl docker compose up ausgeführt werden. Achtung: Im Ausgangszustand der Übungsdateien funktioniert das noch nicht.
Readme-Datei (5 Pkt.)
- Arbeitsschritte dokumentieren (mind. 3 Schritte) – 3 Pkt.
- Hilfsmittel (mind. 1, z. B. nützliche Links, Videos, Bücher…) – 1 Pkt.
- Fragen und Herausforderungen feshalten (mind. 1) – 1 Pkt.
Docker Setup (5 Pkt.)
- Erstelle im Ordner
docker/php-fpmeinDockerfile, in dem definiert wird, dass das Imagephp:8.3-fpmverwendet werden soll. – 1 Pkt. - In der
docker-compose.yamlsoll für beide(!) Container der Ordnersrcals Docker Volume auf den Pfad/var/www/html/wbtuegemountet werden. – 2 Pkt. - Bearbeite deine lokale
hosts-Datei so, dass du deine Docker Container im Webbrowser über die URLwbtue.localerreichst. – 2 Pkt.
nginx Konfigurieren (15 Pkt.)
- Erstelle eine Konfigurationsdatei mit dem Namen
default.confund mounte sie als Volume im nginx Container in das Verzeichnis/etc/nginx/conf.d/default.conf. – 1 Pkt. - Erstelle in der Konfigurationsdatei einen
server-Block. – 1 Pkt. - Der Server soll unter der Domain
wbtue.localerreichbar sein (server_name-Anweisung). – 1 Pkt. - Das
root-Verzeichnis der Seite soll auf/var/www/html/wbtueverweisen. – 1 Pkt. - Wenn beim Aufruf der Seite kein Pfad und keine bestimmte Datei angegeben werden (also der Aufruf einfach über http://wbtue.local:8080 erfolgt), soll ausschließlich eine
index.html-Datei geliefert werden. – 1 Pkt. - Um PHP-Dateien mittels
php-fpmzu laden, füge den folgenden Code in die Nginx-Konfiguration ein (innerhalb desserver-Blocks) – 1 Pkt.
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
- Erstell im
srcVerzeichnis eine Datei mit dem Nameninfo.php. Wenn diese aufgerufen wird, sollen Informationen über die aktuelle PHP Konfiguration angezeigt werden. Hinweis: dafür reicht ein einziger PHP Befehl. – 1 Pkt. - Der
serverHeader in HTTP Responses soll keine detaillierten Informationen über die nginx Version oder das Betriebssystem enthalten (server_token-Anweisung, siehe https://nginx.org/en/docs/http/ngx_http_core_module.html#server_tokens) – 1 Pkt. - Wenn eine Seite aufgerufen wird, die nicht existiert, soll nicht die Standard nginx-Fehlerseite angezeigt werden, sondern die Datei
/var/www/html/wbtue/404.html. – 1 Pkt. - Die folgenden Header sollen gesetzt werden (
add_header-Anweisung) – 1 Pkt. pro Header