Galle, LK--:--5/6 sites live

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.

7 Jul 20264 min readSelf Guide · Stage 7#Nginx#DNS#TLS#SSH#CDN
W3DevOps Module · Production web

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 ed25519 SSH 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

  1. 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…
  2. 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…
  3. 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.prod that builds with Node and serves from nginx:alpine — the exact multi-stage pattern from the Docker post.
  • Mahesh Travellers goes the other way: next export to 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