W3DevOps Module · Production web: DNS, SSH Hardening, Nginx Reverse Proxy, Let's Encrypt and CDNs
How a domain name becomes a running app: DNS resolution, bare metal vs VMs, SSH hardening, a complete Nginx reverse-proxy config with load balancing, TLS and WebSockets, and S3 + CloudFront for static sites.

Before PaaS, before Kubernetes, there's a request: a browser asks DNS for an IP, opens a TLS connection, and something on the other end has to route it to your app. This module is about that path — and it's the one I use most when something is broken in production.
What this module covers
- How domain names resolve to IP addresses
- Bare metal vs virtual machines vs cloud instances
- Server hardening and
ed25519SSH keys - Forward vs reverse proxies and a full production Nginx config (upstream load balancing, TLS termination, WebSocket upgrade)
- One-command TLS with Certbot
- CDNs, S3 + CloudFront, and fixing SPA routing with custom error pages
Lessons in this module
- Production Deployment Foundations: From Bare Metal to Cloud — Why do we deploy software the way we do? In this foundational chapter from the DevOps Bootcamp, we explore how traffic travels from a user's browser, through DNS and IP routers, to physical and virtual…
- Nginx: The Universal Reverse Proxy & Web Server — Nginx powers more than one-third of all active websites worldwide. In modern DevOps architectures, you never expose backend processes (like Express, Django, or Spring Boot) directly to the public internet…
- Storage & Distribution: S3 + CloudFront CDN — Serving static HTML, CSS, JavaScript bundles, and images directly from an application server (like Node.js or Python) consumes valuable CPU cycles and results in sluggish load times for overseas users. The…
Start with Lesson 21: Production Deployment Foundations: From Bare Metal to Cloud — every lesson links to the next, and you can mark each one complete.
Where Nginx lives in my projects
- The Part Timer web container serves the static HR portal through its own
nginx.conf, with the API on a separate Cloud Run service. - All-Star-Dex / Nora frontend ships a production
Dockerfile.prodthat builds with Node and serves fromnginx:alpine— the exact multi-stage pattern from the Docker post. - Mahesh Travellers goes the other way:
next exportto 100% static HTML so there's no server at all — just a CDN. - Coolify puts Traefik in front of every app it deploys, which is the same reverse-proxy idea with automatic Let's Encrypt.
Next and last in the series: self-hosting with Coolify.
Keep going: Start the module → · Full course outline · Self Guide
Finished this one?
Part of Self Guide · Stage 7: Production web: DNS, Nginx, TLS, CDN. Progress is saved in this browser.



