Docker takes care of routing external traffic into your containers, but you can only have one container listening on a network port. It’s fine to use any old ports in your non-production environments--in some chapters of this book we’ve used ten different ports to keep applications separate--but you can’t do that when you go live. You’ll want lots of applications running on a single cluster, but you need them all to be accessible on the standard HTTP and HTTPS ports, 80 and 443.
That’s where a reverse proxy comes in. It’s a critical piece in the architecture of a containerized environment, and in this chapter you’ll learn all about the features it provides and the patterns it enables. We’ll use two of the most popular technologies in this space--Nginx (pronounced “engine x”) and Traefik--running in containers, of course.