Bird
Raised Fist0
Nginxdevops~10 mins

Include directive for modular config in Nginx - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to include a configuration file named extra.conf.

Nginx
include [1];
Drag options to blanks, or click blank then click option'
Aextra.conf;
Bextra.conf
C"extra.conf"
D/etc/nginx/extra.conf
Attempts:
3 left
💡 Hint
Common Mistakes
Adding a semicolon inside the file path
Using quotes around the file path
2fill in blank
medium

Complete the code to include all configuration files ending with .conf from the sites-enabled directory.

Nginx
include /etc/nginx/sites-enabled/[1];
Drag options to blanks, or click blank then click option'
A*.txt
Bsites.conf
C*.conf
Dall.conf
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect file extensions
Not using a wildcard for multiple files
3fill in blank
hard

Fix the error in the include directive to properly include custom.conf.

Nginx
include [1];
Drag options to blanks, or click blank then click option'
A"custom.conf"
Bcustom.conf;
C"custom.conf";
Dcustom.conf
Attempts:
3 left
💡 Hint
Common Mistakes
Including semicolon inside the file path
Using quotes around the file path
4fill in blank
hard

Fill both blanks to include all .conf files from conf.d directory inside /etc/nginx/.

Nginx
include [1]/[2];
Drag options to blanks, or click blank then click option'
A/etc/nginx/conf.d
B/etc/nginx/sites-available
C*.conf
D*.nginx
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong directory path
Using incorrect file pattern
5fill in blank
hard

Fill all three blanks to include default.conf from sites-available directory inside /etc/nginx/.

Nginx
include [1]/[2]/[3];
Drag options to blanks, or click blank then click option'
A/etc/nginx
Bsites-available
Cdefault.conf
Dconf.d
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing directory names
Using wrong file name

Practice

(1/5)
1. What is the main purpose of the include directive in nginx configuration?
easy
A. To define a new server block
B. To start the nginx server
C. To insert the contents of another configuration file into the current file
D. To reload the nginx configuration without downtime

Solution

  1. Step 1: Understand the role of include directive

    The include directive is used to insert the contents of one file into another configuration file.
  2. Step 2: Compare with other options

    Starting the server, defining server blocks, or reloading configs are done by other commands or directives, not include.
  3. Final Answer:

    To insert the contents of another configuration file into the current file -> Option C
  4. Quick Check:

    Include directive = insert config file [OK]
Hint: Include means 'add file content here' in config [OK]
Common Mistakes:
  • Confusing include with server start commands
  • Thinking include defines servers or reloads configs
  • Assuming include runs commands instead of inserting files
2. Which of the following is the correct syntax to include all configuration files ending with .conf from the /etc/nginx/conf.d/ directory?
easy
A. include /etc/nginx/conf.d/*.conf;
B. include /etc/nginx/conf.d/*.conf
C. include /etc/nginx/conf.d/*.conf();
D. include /etc/nginx/conf.d/*.conf{};

Solution

  1. Step 1: Recall nginx include syntax

    The correct syntax requires the path with wildcard and ends with a semicolon: include path/*.conf;.
  2. Step 2: Compare options to correct syntax

    The valid syntax is include /etc/nginx/conf.d/*.conf;. Syntax with parentheses, missing semicolon, or extra braces causes parsing errors.
  3. Final Answer:

    include /etc/nginx/conf.d/*.conf; -> Option A
  4. Quick Check:

    Include syntax ends with semicolon [OK]
Hint: Include paths always end with a semicolon in nginx [OK]
Common Mistakes:
  • Omitting the semicolon at the end
  • Adding parentheses or braces incorrectly
  • Using wrong wildcard syntax
3. Given this nginx config snippet:
http {
    include /etc/nginx/mime.types;
    include /etc/nginx/conf.d/*.conf;
}

What happens when nginx loads this configuration?
medium
A. It inserts the contents of mime.types and all .conf files from conf.d into the http block
B. It ignores the include directives because they are inside http
C. It only loads mime.types but not the files in conf.d
D. It throws a syntax error because multiple includes are not allowed

Solution

  1. Step 1: Understand include behavior inside blocks

    Include inserts file contents exactly where placed, even inside blocks like http.
  2. Step 2: Analyze the given includes

    Both mime.types and all .conf files in conf.d are included inside http, so their contents become part of http.
  3. Final Answer:

    It inserts the contents of mime.types and all .conf files from conf.d into the http block -> Option A
  4. Quick Check:

    Include inserts files where placed [OK]
Hint: Include works anywhere in config blocks [OK]
Common Mistakes:
  • Thinking include only works at top level
  • Assuming include causes syntax errors with multiple files
  • Believing include ignores wildcards inside blocks
4. You wrote this in your nginx config:
include /etc/nginx/conf.d/*.conf

But nginx fails to start with a syntax error. What is the most likely cause?
medium
A. The wildcard *.conf is not supported in include
B. Missing semicolon at the end of the include directive
C. The path must be relative, not absolute
D. Include directive cannot be used inside http block

Solution

  1. Step 1: Check syntax rules for include

    Every nginx directive must end with a semicolon; missing it causes syntax errors.
  2. Step 2: Validate other options

    Wildcards are supported, absolute paths are allowed, and include works inside http.
  3. Final Answer:

    Missing semicolon at the end of the include directive -> Option B
  4. Quick Check:

    Every directive ends with semicolon [OK]
Hint: Always end include lines with semicolon [OK]
Common Mistakes:
  • Forgetting the semicolon at line end
  • Thinking wildcards are invalid
  • Assuming include only works outside blocks
5. You want to organize your nginx config by splitting server blocks into separate files inside /etc/nginx/sites-enabled/. Which is the best way to include all these files in your main nginx.conf?
hard
A. Add include /etc/nginx/sites-enabled/*.conf; inside the server block
B. Add include /etc/nginx/sites-enabled/*.conf; outside any block at the top of nginx.conf
C. Add include /etc/nginx/sites-enabled/*.conf; inside the events block
D. Add include /etc/nginx/sites-enabled/*.conf; inside the http block

Solution

  1. Step 1: Understand where server blocks belong

    Server blocks must be inside the http block in nginx configuration.
  2. Step 2: Determine correct include placement

    Including all server config files inside http ensures they are loaded properly. Including outside blocks or inside events or server blocks is invalid.
  3. Final Answer:

    Add include /etc/nginx/sites-enabled/*.conf; inside the http block -> Option D
  4. Quick Check:

    Server blocks go inside http block [OK]
Hint: Include server configs inside http block [OK]
Common Mistakes:
  • Placing include outside http block
  • Including inside events block
  • Trying to include inside a server block