Bird
Raised Fist0
Nginxdevops~20 mins

Least connections in Nginx - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Least Connections Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Understanding Least Connections Load Balancing

What does the least connections method do in an NGINX load balancer?

AIt sends requests only to the server with the highest CPU usage.
BIt sends requests to servers in a fixed round-robin order regardless of load.
CIt sends requests randomly to any server in the pool.
DIt sends new requests to the server with the fewest active connections.
Attempts:
2 left
💡 Hint

Think about how to balance load by connection count.

❓ Configuration
intermediate
2:00remaining
Configuring Least Connections in NGINX

Which NGINX configuration snippet correctly enables the least connections load balancing method?

Nginx
upstream backend {
    least_conn;
    server backend1.example.com;
    server backend2.example.com;
}
A
upstream backend {
    round_robin;
    server backend1.example.com;
    server backend2.example.com;
}
B
upstream backend {
    least_conn;
    server backend1.example.com;
    server backend2.example.com;
}
C
upstream backend {
    random;
    server backend1.example.com;
    server backend2.example.com;
}
D
upstream backend {
    ip_hash;
    server backend1.example.com;
    server backend2.example.com;
}
Attempts:
2 left
💡 Hint

Look for the directive that specifies least connections.

💻 Command Output
advanced
1:30remaining
Interpreting NGINX Upstream Status Output

Given this NGINX status output snippet showing active connections per backend server, which server will receive the next request if least_conn is enabled?

backend1.example.com - active connections: 5
backend2.example.com - active connections: 3
backend3.example.com - active connections: 7
Abackend3.example.com
Bbackend1.example.com
Cbackend2.example.com
DAll servers equally
Attempts:
2 left
💡 Hint

Which server has the fewest active connections?

❓ Troubleshoot
advanced
2:00remaining
Troubleshooting Uneven Load Distribution

You configured NGINX with least_conn load balancing, but one backend server is still overloaded while others are idle. What is the most likely cause?

AThe overloaded server has long-lived connections that keep its active connection count high.
BNGINX is using round-robin instead of least connections.
CThe backend servers have different IP addresses configured incorrectly.
DThe DNS resolution for backend servers is failing.
Attempts:
2 left
💡 Hint

Think about how connection duration affects load balancing.

🔀 Workflow
expert
3:00remaining
Implementing Least Connections with Health Checks

You want to configure NGINX to use least_conn load balancing but also ensure that unhealthy backend servers are not used. Which configuration snippet correctly combines least connections with active health checks?

A
upstream backend {
    least_conn;
    server backend1.example.com max_fails=3 fail_timeout=30s;
    server backend2.example.com max_fails=3 fail_timeout=30s;
    health_check;
}
B
upstream backend {
    least_conn;
    server backend1.example.com;
    server backend2.example.com;
    check interval=3000 rise=2 fall=5 timeout=1000;
}
C
upstream backend {
    least_conn;
    server backend1.example.com;
    server backend2.example.com;
    health_check;
}
D
upstream backend {
    least_conn;
    server backend1.example.com max_fails=3 fail_timeout=30s;
    server backend2.example.com max_fails=3 fail_timeout=30s;
}
Attempts:
2 left
💡 Hint

Look for the combination of least_conn, server fail parameters, and health_check directive.

Practice

(1/5)
1. What does the least_conn directive do in an nginx upstream block?
easy
A. Sends new requests to the server with the fewest active connections
B. Sends new requests to the server with the fastest response time
C. Sends new requests to servers in a round-robin order
D. Sends new requests to the server with the most active connections

Solution

  1. Step 1: Understand the purpose of least_conn

    The least_conn directive is used to balance load by sending requests to the server with the fewest active connections.
  2. Step 2: Compare with other load balancing methods

    Other methods like round-robin or fastest response time differ; least_conn focuses on active connections count.
  3. Final Answer:

    Sends new requests to the server with the fewest active connections -> Option A
  4. Quick Check:

    Least connections = fewest active connections [OK]
Hint: Least connections means pick server with fewest active users [OK]
Common Mistakes:
  • Confusing least connections with round-robin
  • Thinking it picks fastest server instead
  • Assuming it sends to server with most connections
2. Which of the following is the correct syntax to enable least connections load balancing in nginx?
easy
A. upstream backend { least_conn; server 192.168.1.1; }
B. upstream backend { least_connections; server 192.168.1.1; }
C. upstream backend { least_conn_load; server 192.168.1.1; }
D. upstream backend { leastconn; server 192.168.1.1; }

Solution

  1. Step 1: Recall the exact directive name

    The correct directive to enable least connections is least_conn inside the upstream block.
  2. Step 2: Verify syntax correctness

    Options A, B, and D use incorrect directive names or misspellings.
  3. Final Answer:

    upstream backend { least_conn; server 192.168.1.1; } -> Option A
  4. Quick Check:

    Correct directive = least_conn [OK]
Hint: Use exact directive name 'least_conn' inside upstream block [OK]
Common Mistakes:
  • Using 'least_connections' instead of 'least_conn'
  • Misspelling the directive as 'leastconn' or 'least_conn_load'
  • Placing directive outside the upstream block
3. Given this nginx upstream configuration:
<pre>upstream backend { least_conn; server 10.0.0.1; server 10.0.0.2; } If 10.0.0.1 has 5 active connections and 10.0.0.2 has 3 active connections, where will the next request be sent?
medium
A. To 10.0.0.1 because it is listed first
B. To both servers equally
C. To 10.0.0.2 because it has fewer active connections
D. To 10.0.0.1 because it has more active connections

Solution

  1. Step 1: Identify the load balancing method

    The least_conn method sends requests to the server with the fewest active connections.
  2. Step 2: Compare active connections of servers

    10.0.0.1 has 5 connections, 10.0.0.2 has 3 connections, so the next request goes to 10.0.0.2.
  3. Final Answer:

    To 10.0.0.2 because it has fewer active connections -> Option C
  4. Quick Check:

    Least connections picks server with 3 connections [OK]
Hint: Pick server with smallest active connections count [OK]
Common Mistakes:
  • Choosing server listed first instead of fewest connections
  • Assuming equal distribution regardless of connections
  • Picking server with more connections by mistake
4. You configured nginx with least_conn but all requests keep going to the same server. What is the most likely cause?
medium
A. The servers have equal active connections, so nginx picks the first server always
B. The least_conn directive is misspelled in the config
C. The upstream block is missing the server directives
D. The nginx service was not reloaded after configuration change

Solution

  1. Step 1: Check if configuration changes are active

    If nginx is not reloaded after config changes, old settings remain active causing unexpected behavior.
  2. Step 2: Consider other causes

    Misspelling or missing servers cause errors or no load balancing, but requests going to one server usually means config not applied.
  3. Final Answer:

    The nginx service was not reloaded after configuration change -> Option D
  4. Quick Check:

    Reload nginx after config changes [OK]
Hint: Always reload nginx after config edits to apply changes [OK]
Common Mistakes:
  • Ignoring the need to reload nginx after config update
  • Assuming equal connections cause all traffic to one server
  • Not verifying server directives exist in upstream block
5. You have three backend servers with varying response times and active connections:
  • Server A: 2 active connections, slow response
  • Server B: 5 active connections, fast response
  • Server C: 2 active connections, medium response

Using least_conn load balancing, which server will receive the next request and why?
hard
A. Requests will be evenly distributed among all servers
B. Server A, because it has the fewest active connections and slow response is ignored
C. Server C, because it has the fewest active connections and better response than A
D. Server B, because it has the fastest response time despite more connections

Solution

  1. Step 1: Understand least_conn prioritizes active connections

    It sends requests to servers with the fewest active connections, ignoring response time.
  2. Step 2: Compare servers with fewest connections

    Server A and C both have 2 connections, but least_conn does not consider response speed, so it picks the first with fewest connections, Server A.
  3. Final Answer:

    Server A, because it has the fewest active connections and slow response is ignored -> Option B
  4. Quick Check:

    Least connections ignores speed, picks fewest active connections [OK]
Hint: Least connections ignores speed; picks server with fewest active connections [OK]
Common Mistakes:
  • Assuming fastest response server is chosen with least_conn
  • Thinking least_conn balances by response time
  • Expecting even distribution regardless of connections
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