Projekt B: NGINX Reverse Proxy mit Docker Compose
Host: Proxmox VE → Ubuntu VM (ubuntu-server-01)
Stack: Docker + Docker Compose
Firewall: UFW aktiv
Network: web (external)
Ziel: Mehrere interne Services über einen zentralen Reverse Proxy erreichbar machen (Ports konsolidieren, Services intern isolieren).
Ziel
- Zentraler Reverse Proxy als einheitlicher Einstiegspunkt (Port 80)
- Services bleiben intern (Docker Network), keine direkten externen Ports
- Path-based Routing:
/whoami/ und /echo/
Umgebung
- Proxmox VE → Ubuntu Server VM (ubuntu-server-01)
- Reverse Proxy: nginx:alpine
- Backend: traefik/whoami, ealen/echo-server
- Docker Network: web (external)
Umsetzung
Projektstruktur
~/projects/nginx-reverse-proxy
Docker Compose Services
- reverse-proxy publiziert HTTP nach außen (Port 80)
- whoami intern
- echo intern
NGINX Routing (path-based)
/whoami/ → whoami
/echo/ → echo-server
Firewall
UFW erlaubt mindestens 22/tcp (SSH) und 80/tcp (HTTP).
Verifikation
- Lokal:
curl http://127.0.0.1/echo/
- LAN (Mac):
curl http://192.168.178.40/echo/
Ergebnis
- Ein zentraler Reverse Proxy stellt mehrere Services über eine öffentliche Schnittstelle bereit.
- Services sind über Docker Network intern isoliert.
- Zugriff von Client im LAN erfolgreich bestätigt.
Screenshots (Nachweis)
Container-Status: docker compose ps.
NGINX Routing: /whoami/ und /echo/.
Lokaler Test: curl http://127.0.0.1/echo/.
LAN-Test (Mac): curl http://192.168.178.40/echo/.