Bird
Raised Fist0
Nginxdevops~20 mins

Backup servers in Nginx - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Backup Server Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
Nginx Backup Server Fallback Behavior
Given the following nginx upstream configuration, what will happen when the primary server is down?
Nginx
upstream backend {
    server primary.example.com max_fails=3 fail_timeout=30s;
    server backup.example.com backup;
}

server {
    location / {
        proxy_pass http://backend;
    }
}
ARequests will be sent to backup.example.com first, then primary.example.com if backup fails.
BRequests will be sent only to primary.example.com regardless of its status.
CRequests will be sent to backup.example.com only if primary.example.com fails 3 times within 30 seconds.
DRequests will be load balanced equally between primary.example.com and backup.example.com.
Attempts:
2 left
💡 Hint
Think about how the 'backup' keyword affects server selection in nginx upstream blocks.
❓ Configuration
intermediate
2:00remaining
Configuring Multiple Backup Servers in Nginx
Which nginx upstream configuration correctly sets up one primary server and two backup servers?
A
upstream backend {
    server primary.example.com;
    server backup1.example.com backup;
    server backup2.example.com backup;
}
B
upstream backend {
    server primary.example.com;
    server backup1.example.com backup;
    server backup2.example.com;
}
C
upstream backend {
    server primary.example.com backup;
    server backup1.example.com;
    server backup2.example.com backup;
}
D
upstream backend {
    server primary.example.com;
    server backup1.example.com;
    server backup2.example.com backup;
}
Attempts:
2 left
💡 Hint
Backup servers must be marked with the 'backup' keyword to be used only when primary fails.
❓ Troubleshoot
advanced
2:00remaining
Troubleshooting Backup Server Not Used
You configured a backup server in nginx, but requests never go to it even when the primary server is down. What is the most likely cause?
AThe backup server is not marked with the 'backup' keyword in the upstream block.
BThe backup server is marked with 'backup' but has a higher weight than the primary server.
CThe proxy_pass directive is missing in the server block.
DThe primary server has 'max_fails' set too high, so nginx never marks it as down.
Attempts:
2 left
💡 Hint
Consider how nginx decides a server is down and when it switches to backup.
🔀 Workflow
advanced
2:00remaining
Backup Server Failover Workflow
What is the correct sequence of events when nginx fails over from a primary to a backup server?
A1,2,3,4
B2,1,3,4
C1,3,2,4
D3,1,2,4
Attempts:
2 left
💡 Hint
Think about how nginx detects failure and switches servers step-by-step.
✅ Best Practice
expert
3:00remaining
Best Practice for Backup Server Health Checks
Which configuration snippet best ensures nginx properly detects backup server health before sending traffic to it?
A
upstream backend {
    server primary.example.com max_fails=3 fail_timeout=10s;
    server backup.example.com backup;
}
B
upstream backend {
    server primary.example.com max_fails=3 fail_timeout=10s;
    server backup.example.com backup max_fails=1 fail_timeout=5s;
}
C
upstream backend {
    server primary.example.com max_fails=3 fail_timeout=10s;
    server backup.example.com backup max_fails=10 fail_timeout=60s;
}
D
upstream backend {
    server primary.example.com max_fails=3 fail_timeout=10s;
    server backup.example.com max_fails=1 fail_timeout=5s;
}
Attempts:
2 left
💡 Hint
Backup servers should have health check parameters to avoid sending traffic to unhealthy backups.

Practice

(1/5)
1. What is the main purpose of marking a server as backup in an upstream block in nginx?
easy
A. To use it only if all main servers are unavailable
B. To prioritize it over main servers for all requests
C. To permanently disable the server
D. To balance load equally with main servers

Solution

  1. Step 1: Understand the role of backup servers

    Backup servers are fallback servers used only when main servers fail.
  2. Step 2: Analyze the backup keyword effect

    Marking a server as backup means it will receive traffic only if main servers are down.
  3. Final Answer:

    To use it only if all main servers are unavailable -> Option A
  4. Quick Check:

    Backup servers = fallback only [OK]
Hint: Backup servers handle traffic only when main servers fail [OK]
Common Mistakes:
  • Thinking backup servers share load equally
  • Assuming backup servers are always active
  • Confusing backup with disabled servers
2. Which of the following is the correct syntax to define a backup server in an nginx upstream block?
easy
A. server 192.168.1.10;
B. server backup 192.168.1.10;
C. server 192.168.1.10 backup;
D. backup server 192.168.1.10;

Solution

  1. Step 1: Recall nginx upstream server syntax

    The correct syntax is server [IP] [parameters]; with parameters like backup after IP.
  2. Step 2: Identify correct placement of backup

    The backup keyword comes after the IP address in the server line.
  3. Final Answer:

    server 192.168.1.10 backup; -> Option C
  4. Quick Check:

    Backup keyword after IP = correct syntax [OK]
Hint: Put 'backup' after IP in server line [OK]
Common Mistakes:
  • Placing 'backup' before IP address
  • Using 'backup server' instead of 'server ... backup;'
  • Omitting semicolon at line end
3. Given this nginx upstream block:
upstream backend {
    server 10.0.0.1;
    server 10.0.0.2 backup;
}

Which server will nginx send requests to if 10.0.0.1 is up?
medium
A. 10.0.0.1 only
B. 10.0.0.2 only
C. Both 10.0.0.1 and 10.0.0.2 equally
D. No server, error occurs

Solution

  1. Step 1: Understand upstream with backup server

    Main server 10.0.0.1 handles requests first; backup 10.0.0.2 is fallback.
  2. Step 2: Check server availability

    Since 10.0.0.1 is up, nginx sends all requests there, ignoring backup.
  3. Final Answer:

    10.0.0.1 only -> Option A
  4. Quick Check:

    Backup used only if main down [OK]
Hint: Backup server used only if main server fails [OK]
Common Mistakes:
  • Assuming backup server shares load
  • Thinking backup server is always active
  • Believing nginx sends requests to both simultaneously
4. You have this nginx upstream configuration:
upstream backend {
    server 192.168.0.1 backup;
    server 192.168.0.2;
}

What is wrong with this configuration?
medium
A. Backup keyword is misspelled
B. No semicolon after server lines
C. IP addresses are invalid
D. Nothing is wrong with this configuration

Solution

  1. Step 1: Validate syntax and parameters

    All server lines have correct syntax, valid IPs, proper semicolons, and correct backup usage.
  2. Step 2: Check server order

    Position of backup servers does not matter; nginx ignores them unless all main servers fail.
  3. Final Answer:

    Nothing is wrong with this configuration -> Option D
  4. Quick Check:

    Backup position irrelevant [OK]
Hint: Backup servers can be listed anywhere [OK]
Common Mistakes:
  • Thinking backup servers must be listed after main servers
  • Believing server order causes failures
  • Assuming 192.168.x.x IPs are invalid
5. You want nginx to send traffic to server1 and server2 normally, but use backup1 and backup2 only if both main servers fail. Which configuration correctly sets this up?
hard
A. upstream backend { server backup1; server backup2; server server1; server server2; }
B. upstream backend { server server1; server server2; server backup1 backup; server backup2 backup; }
C. upstream backend { server server1 backup; server server2 backup; server backup1; server backup2; }
D. upstream backend { server server1; server backup1; server server2; server backup2; }

Solution

  1. Step 1: Identify main and backup servers

    Main servers are server1 and server2; backup servers are backup1 and backup2.
  2. Step 2: Apply correct syntax and order

    Main servers listed first without backup, backups listed after with backup keyword.
  3. Step 3: Verify options

    upstream backend { server server1; server server2; server backup1 backup; server backup2 backup; } correctly lists main servers first, backups with backup keyword after.
  4. Final Answer:

    upstream backend { server server1; server server2; server backup1 backup; server backup2 backup; } -> Option B
  5. Quick Check:

    Main servers first, backups last with 'backup' keyword [OK]
Hint: List main servers first, backups last with 'backup' keyword [OK]
Common Mistakes:
  • Placing backup servers before main servers
  • Missing 'backup' keyword on backup servers
  • Marking main servers as backup by mistake
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard