Bird
Raised Fist0
Nginxdevops~5 mins

Directives and blocks in Nginx - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is a directive in nginx configuration?
A directive is a single instruction in nginx configuration that sets a specific parameter or behavior, like setting a port or enabling a feature.
Click to reveal answer
beginner
What is a block in nginx configuration?
A block groups multiple directives together inside curly braces { } to apply settings to a specific context, like a server or location.
Click to reveal answer
intermediate
How do directives and blocks relate in nginx config?
Directives can be simple single lines or can contain blocks. Blocks hold other directives inside them to organize settings hierarchically.
Click to reveal answer
beginner
Example of a simple directive in nginx?
Example:
listen 80;
This tells nginx to listen on port 80.
Click to reveal answer
beginner
Example of a block directive in nginx?
Example:
server {
    listen 80;
    server_name example.com;
}
This block configures a server with specific settings.
Click to reveal answer
What symbol starts a block in nginx configuration?
A[
B(
C{
D<
Which of these is a directive in nginx?
Alisten 80;
B{ listen 80; }
Cserver { listen 80; }
D<listen>80</listen>
What does a block in nginx configuration do?
AGroups directives for a context
BDefines a variable
CComments out code
DRuns a script
Which is the correct way to write a directive?
Alisten 80
Blisten 80;
Clisten: 80;
Dlisten = 80;
Where would you find blocks in nginx config?
AIn log files
BOnly at the top of the file
CIn comments
DInside server or location sections
Explain what directives and blocks are in nginx configuration and how they work together.
Think about single instructions versus grouped instructions.
You got /4 concepts.
    Describe how you would configure nginx to listen on port 80 using directives and blocks.
    Remember the structure of a server block.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main difference between a directive and a block in an nginx configuration?
      easy
      A. A directive groups multiple blocks; a block is a single instruction ending with a semicolon.
      B. A directive is a single instruction ending with a semicolon; a block groups multiple directives inside curly braces.
      C. A directive is used only for server settings; a block is used only for location settings.
      D. A directive must always contain a block inside it.

      Solution

      1. Step 1: Understand directive syntax

        A directive is a single instruction that ends with a semicolon in nginx configuration.
      2. Step 2: Understand block syntax

        A block groups multiple directives inside curly braces to organize related settings.
      3. Final Answer:

        A directive is a single instruction ending with a semicolon; a block groups multiple directives inside curly braces. -> Option B
      4. Quick Check:

        Directive = single instruction; Block = group of directives [OK]
      Hint: Directives end with ; blocks use { } to group [OK]
      Common Mistakes:
      • Confusing directives with blocks
      • Thinking blocks end with semicolon
      • Assuming directives can contain blocks
      2. Which of the following is the correct syntax for an nginx directive?
      easy
      A. listen 80;
      B. server { listen 80 }
      C. location / { listen 80 }
      D. listen 80

      Solution

      1. Step 1: Identify directive syntax

        A directive must end with a semicolon and is a single instruction.
      2. Step 2: Check each option

        listen 80; ends with a semicolon and is a single instruction: listen 80;.
      3. Final Answer:

        listen 80; -> Option A
      4. Quick Check:

        Directive ends with ; [OK]
      Hint: Directives always end with a semicolon ; [OK]
      Common Mistakes:
      • Omitting semicolon at end
      • Using curly braces for directives
      • Mixing block syntax with directive
      3. Given this nginx configuration snippet, what will happen when a request is made to /images?
      location /images/ {
          root /data;
          autoindex on;
      }
      medium
      A. Nginx will return a 404 error because root is incorrectly used.
      B. Nginx will serve files from /images/ directory on the server root.
      C. Nginx will redirect requests to /data/images/ automatically.
      D. Nginx will serve files from /data/images/ and show a directory listing if no index file exists.

      Solution

      1. Step 1: Understand the location block

        The location block matches requests starting with /images/.
      2. Step 2: Interpret the root directive

        Root sets the base directory to /data, so files are served from /data/images/.
      3. Step 3: Effect of autoindex on

        If no index file exists, nginx shows a directory listing.
      4. Final Answer:

        Nginx will serve files from /data/images/ and show a directory listing if no index file exists. -> Option D
      5. Quick Check:

        location + root + autoindex = serve files with listing [OK]
      Hint: root sets base path; autoindex shows directory listing [OK]
      Common Mistakes:
      • Confusing root with alias
      • Assuming redirect happens automatically
      • Ignoring autoindex effect
      4. Identify the error in this nginx configuration snippet:
      server {
          listen 80
          server_name example.com;
      }
      medium
      A. listen directive should be inside location block.
      B. server_name directive cannot be inside server block.
      C. Missing semicolon after listen 80 directive.
      D. Curly braces are missing around listen directive.

      Solution

      1. Step 1: Check syntax of directives

        Each directive must end with a semicolon in nginx configuration.
      2. Step 2: Locate missing semicolon

        The listen 80 directive is missing a semicolon at the end.
      3. Final Answer:

        Missing semicolon after listen 80 directive. -> Option C
      4. Quick Check:

        Every directive ends with ; [OK]
      Hint: Check every directive ends with ; [OK]
      Common Mistakes:
      • Forgetting semicolon at directive end
      • Misplacing directives outside server block
      • Adding unnecessary braces
      5. You want to configure nginx to serve static files from /var/www/html for all requests under /static/. Which configuration block correctly achieves this?
      hard
      A. location /static/ { alias /var/www/html/; }
      B. location /static { alias /var/www/html; }
      C. location /static/ { root /var/www/html; }
      D. location /static/ { root /var/www/html/; }

      Solution

      1. Step 1: Understand root vs alias

        Root appends the request URI to the root path; alias replaces the location prefix with the alias path.
      2. Step 2: Match location and alias usage

        For prefix locations ending with /, alias must end with / to correctly map paths.
      3. Step 3: Evaluate options

        location /static/ { alias /var/www/html/; } uses location /static/ { alias /var/www/html/; } which correctly serves files under /static/ from /var/www/html.
      4. Final Answer:

        location /static/ { alias /var/www/html/; } -> Option A
      5. Quick Check:

        Use alias with trailing slash for prefix location [OK]
      Hint: Use alias with trailing slash for prefix locations [OK]
      Common Mistakes:
      • Using root instead of alias for prefix paths
      • Missing trailing slash on alias path
      • Mismatching location and alias slashes