Bird
Raised Fist0
Nginxdevops~5 mins

Upstream blocks in Nginx - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is an upstream block in nginx?
An upstream block defines a group of backend servers that nginx can proxy requests to. It helps distribute traffic among multiple servers.
Click to reveal answer
beginner
How do you define multiple servers inside an upstream block?
Inside the upstream block, list each server with the server directive, for example:
upstream backend {
  server 192.168.1.10;
  server 192.168.1.11;
}
Click to reveal answer
beginner
What is the purpose of the proxy_pass directive in relation to upstream blocks?
The proxy_pass directive tells nginx to forward client requests to the servers defined in an upstream block, enabling load balancing.
Click to reveal answer
intermediate
Name two load balancing methods supported in nginx upstream blocks.
Two common methods are:
1. round-robin (default): requests are distributed evenly.
2. least_conn: requests go to the server with the fewest active connections.
Click to reveal answer
intermediate
How can you mark a server as a backup in an upstream block?
Add the backup parameter to the server directive. This server will only receive traffic if all primary servers are down.
server 192.168.1.12 backup;
Click to reveal answer
What does an upstream block in nginx do?
AConfigures SSL certificates
BSets client request timeout
CDefines backend servers for load balancing
DSpecifies static file locations
Which directive inside an upstream block lists backend servers?
Aproxy_pass
Bserver
Clocation
Dlisten
What is the default load balancing method in nginx upstream blocks?
Around-robin
Bip_hash
Crandom
Dleast_conn
How do you tell nginx to use an upstream block in a server configuration?
AUsing <code>proxy_pass</code> with the upstream name
BUsing <code>listen</code> directive
CUsing <code>root</code> directive
DUsing <code>error_page</code>
What does the backup parameter do in an upstream server directive?
AMarks the server as primary
BEnables SSL on the server
CDisables the server
DMarks the server as a fallback used only if others fail
Explain how nginx uses an upstream block to balance load between servers.
Think about how nginx forwards requests to several servers.
You got /4 concepts.
    Describe how to configure a backup server in an nginx upstream block and why it is useful.
    Consider what happens if main servers go down.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of an upstream block in an nginx configuration?
      easy
      A. To set caching rules for static files
      B. To group backend servers for load balancing
      C. To define client request headers
      D. To configure SSL certificates

      Solution

      1. Step 1: Understand the role of upstream blocks

        Upstream blocks in nginx are used to group backend servers together.
      2. Step 2: Identify the purpose of grouping

        This grouping allows nginx to distribute incoming traffic among these servers, which is called load balancing.
      3. Final Answer:

        To group backend servers for load balancing -> Option B
      4. Quick Check:

        Upstream blocks = backend server groups [OK]
      Hint: Upstream blocks group servers for load balancing [OK]
      Common Mistakes:
      • Confusing upstream with SSL or caching settings
      • Thinking upstream defines client headers
      • Assuming upstream is for static file rules
      2. Which of the following is the correct syntax to define an upstream block named backend with two servers server1.example.com and server2.example.com?
      easy
      A. upstream backend { server server1.example.com; server server2.example.com; }
      B. upstream backend { server1.example.com; server2.example.com; }
      C. upstream backend { backend server1.example.com; backend server2.example.com; }
      D. upstream backend { server: server1.example.com; server: server2.example.com; }

      Solution

      1. Step 1: Recall the upstream block syntax

        The correct syntax requires the keyword server before each backend server address inside curly braces.
      2. Step 2: Match the syntax with options

        upstream backend { server server1.example.com; server server2.example.com; } correctly uses server server1.example.com; and server server2.example.com; inside the upstream block.
      3. Final Answer:

        upstream backend { server server1.example.com; server server2.example.com; } -> Option A
      4. Quick Check:

        Each backend needs 'server' keyword [OK]
      Hint: Each server line starts with 'server' keyword [OK]
      Common Mistakes:
      • Omitting 'server' keyword before addresses
      • Using colons instead of spaces
      • Adding extra keywords like 'backend' inside block
      3. Given this nginx upstream block:
      upstream backend {
          server 192.168.1.10 weight=3;
          server 192.168.1.11;
      }

      What does the weight=3 mean for 192.168.1.10?
      medium
      A. It receives three times more requests than 192.168.1.11
      B. It is a backup server and only used if 192.168.1.11 fails
      C. It limits connections to 3 simultaneous clients
      D. It will be ignored because weight is invalid here

      Solution

      1. Step 1: Understand weight in upstream servers

        The weight parameter assigns relative load share to a server. A higher weight means more requests.
      2. Step 2: Interpret the weight=3 for 192.168.1.10

        Since 192.168.1.10 has weight=3 and 192.168.1.11 has default weight=1, the first server gets 3 times more requests.
      3. Final Answer:

        It receives three times more requests than 192.168.1.11 -> Option A
      4. Quick Check:

        Weight controls request distribution [OK]
      Hint: Weight multiplies request share for that server [OK]
      Common Mistakes:
      • Confusing weight with backup role
      • Thinking weight limits connections
      • Assuming weight is ignored if not 1
      4. Identify the error in this upstream block configuration:
      upstream backend {
          server 10.0.0.1;
          server 10.0.0.2 backup;
          server 10.0.0.3 weight=two;
      }
      medium
      A. Upstream block cannot have more than two servers
      B. Backup server must be listed first
      C. Missing semicolon after server 10.0.0.1
      D. The weight value 'two' is invalid; it must be a number

      Solution

      1. Step 1: Check syntax of weight parameter

        The weight parameter must be a numeric value. 'two' is a string and invalid.
      2. Step 2: Verify other parts of the block

        Semicolons are present, backup server can be anywhere, and multiple servers are allowed.
      3. Final Answer:

        The weight value 'two' is invalid; it must be a number -> Option D
      4. Quick Check:

        Weight must be numeric [OK]
      Hint: Weight values must be numbers, not words [OK]
      Common Mistakes:
      • Placing backup server only first
      • Forgetting semicolons
      • Limiting number of servers incorrectly
      5. You want to configure an upstream block named app_servers with three servers: 10.1.1.1 (weight 5), 10.1.1.2 (weight 1), and 10.1.1.3 as a backup. Which configuration is correct?
      hard
      A. upstream app_servers { server 10.1.1.1 weight=5; server 10.1.1.2; server 10.1.1.3 backup=1; }
      B. upstream app_servers { server 10.1.1.1 weight=5; server 10.1.1.2 weight=1 backup; server 10.1.1.3; }
      C. upstream app_servers { server 10.1.1.1 weight=5; server 10.1.1.2 weight=1; server 10.1.1.3 backup; }
      D. upstream app_servers { server 10.1.1.1; server 10.1.1.2 weight=1; server 10.1.1.3 backup weight=5; }

      Solution

      1. Step 1: Assign weights correctly

        Servers 10.1.1.1 and 10.1.1.2 must have weights 5 and 1 respectively, using weight=.
      2. Step 2: Mark backup server properly

        Server 10.1.1.3 should be marked with the backup keyword without weight.
      3. Step 3: Validate options

        upstream app_servers { server 10.1.1.1 weight=5; server 10.1.1.2 weight=1; server 10.1.1.3 backup; } correctly assigns weights and backup keyword. Others misuse backup or weight syntax.
      4. Final Answer:

        upstream app_servers { server 10.1.1.1 weight=5; server 10.1.1.2 weight=1; server 10.1.1.3 backup; } -> Option C
      5. Quick Check:

        Weight and backup keywords used correctly [OK]
      Hint: Use 'weight=' for load, 'backup' alone for backup server [OK]
      Common Mistakes:
      • Using 'backup=1' instead of 'backup'
      • Combining weight and backup on same server
      • Omitting weight for weighted servers
      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