This repository contains a virtual "lab" that can be used to experiment with Nginx; it sets up two reverse proxies (which can simulate having Cloudflare in front of your server) and a simple backend application.
- Docker
- docker-compose
Run docker compose up to spin up the whole stack, then your main (outer) frontend can be accessed
on localhost:8080 (HTTP) or localhost:8443 (HTTPS) and your secondary (inner) frontend on
localhost:9090 (and 9443 for HTTPS); the backend application is bound to the /app location on
both proxies.
The two proxies are configured with self-signed TLS certificates created at build time for the wildcard
domain *.homelab.dev.
To send an HTTPS request to the outer proxy with curl:
$ curl --insecure --resolve '*:8443:127.0.0.1' https://example.homelab.dev:8443
In an ideal world Docker Compose would distinguish between stdout and sterr when streaming logs, but until then:
$ docker compose logs -f outer-proxy -n 0 --no-log-prefix | jq -R '. as $line | try (fromjson) catch $line'