Challengenetworking
Reverse Proxy & Load Balancing with Nginx — Challenge
Put a proxy in front of two backends, then break one and watch what the health check does about it.
- Time
- 25 min
- Level
- Intermediate
- Objectives
- 4 objectives
- Cost
- Free
Before you start
You will need
- Docker
- Docker Compose
You will be able to
- Configure an upstream with more than one backend
- Forward the headers an application needs to see the real client
- Explain 502 versus 504 from the proxy's point of view
You are done when
0 of 4
The goal#
Achieve the same outcome as Reverse Proxy & Load Balancing with Nginx, from an empty starting point, without the steps.
One application server is a single point of failure, and it also has to terminate TLS, serve static files and survive a restart.
A reverse proxy in front solves all three — and introduces its own failure modes, which are the ones you will actually debug in Kubernetes later.
What must be true when you are done#
- Requests through the proxy reach both backends, demonstrated by repeated calls.
- Stopping one backend does not produce errors for the client.
- The backend can see the original client IP, not the proxy's.
- You can produce a 502 and a 504 deliberately and explain the difference.
Rules#
- Do not open the guided lab until you are finished, or until the same problem has held you up for 20 minutes.
- Documentation is allowed and encouraged.
- Verify every criterion with a command whose output you can read.
If you get stuck#
- What did you expect, exactly?
- What happened instead — the error text, not a paraphrase?
- Which layer is that error from?
- What is the smallest command that proves the layer below is fine?
The concept behind it
Next up
Lab 12 of 58 on the project path