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
Configuring the Root Directive in Nginx
📖 Scenario: You are setting up a simple web server using Nginx. You want to serve static files from a specific folder on your computer.
🎯 Goal: Learn how to configure the root directive in Nginx to specify the folder where your website files are located.
📋 What You'll Learn
Create a basic Nginx server block configuration
Set the root directive to the correct folder path
Use the location / block to serve files from the root directory
Print the final configuration to verify the setup
💡 Why This Matters
🌍 Real World
Web servers use the <code>root</code> directive to know where to find the website files to serve to visitors.
💼 Career
Understanding Nginx configuration is essential for DevOps roles that manage web servers and deploy web applications.
Progress0 / 4 steps
1
Create the basic server block
Create a variable called nginx_config and assign it a string that starts with server { and includes listen 80; and server_name localhost; inside the block.
Nginx
Hint
Remember to use triple quotes or escape newlines to create multi-line strings.
2
Add the root directive
Add a line inside the server block in nginx_config that sets the root directive to /var/www/html. Use the exact text root /var/www/html;.
Nginx
Hint
The root directive tells Nginx where to find your website files.
3
Add a location block
Add a location / block inside the server block in nginx_config with the exact text location / { try_files $uri $uri/ =404; } to serve files from the root directory.
Nginx
Hint
The location / block tells Nginx how to handle requests to the root URL.
4
Print the final configuration
Write a print statement to display the value of nginx_config.
Nginx
Hint
Use print(nginx_config) to show the configuration.
Practice
(1/5)
1. What does the root directive do in an nginx configuration?
easy
A. It sets the maximum number of client connections.
B. It defines the server's IP address.
C. It specifies the port number nginx listens on.
D. It sets the folder where nginx looks for files to serve.
Solution
Step 1: Understand the purpose of the root directive
The root directive tells nginx which folder to use as the base path for serving files.
Step 2: Compare with other options
Other options like IP address, port, or client limits are set by different directives, not root.
Final Answer:
It sets the folder where nginx looks for files to serve. -> Option D
Quick Check:
root = folder path for files [OK]
Hint: Root sets the base folder for files nginx serves [OK]
Common Mistakes:
Confusing root with listen directive
Thinking root sets server IP or port
Assuming root controls client limits
2. Which of the following is the correct syntax to set the root directory to /var/www/html inside a location block?
easy
A. root = /var/www/html;
B. root /var/www/html;
C. root: /var/www/html;
D. root /var/www/html
Solution
Step 1: Recall nginx directive syntax
Directives use the format: directive_name value; without equals or colons.
Step 2: Check each option
root /var/www/html; uses correct syntax: root /var/www/html;. Options A and C use invalid symbols, D misses the semicolon.
Final Answer:
root /var/www/html; -> Option B
Quick Check:
Correct syntax = root path followed by semicolon [OK]
Hint: No equals sign or colon; end with semicolon [OK]
Common Mistakes:
Using equals sign (=) after root
Omitting semicolon at end
Using colon (:) instead of space
3. Given this nginx config snippet inside a server block:
location /images/ {
root /var/www/data;
}
If a client requests /images/pic.jpg, which file path will nginx try to serve?
medium
A. /var/www/data/images/pic.jpg
B. /var/www/data/pic.jpg
C. /images/pic.jpg
D. /var/www/html/images/pic.jpg
Solution
Step 1: Understand root with location
The root directive appends the full request URI to the root path.
Step 2: Combine root and request URI
Request URI is /images/pic.jpg. Root is /var/www/data. So nginx looks for /var/www/data/images/pic.jpg.
Final Answer:
/var/www/data/images/pic.jpg -> Option A
Quick Check:
root + full URI = file path [OK]
Hint: Root + full URI = file path nginx serves [OK]
Common Mistakes:
Assuming root replaces location prefix
Ignoring location path in file path
Confusing root with alias directive
4. You set root /var/www/html; inside a location /static/ block, but requests to /static/style.css return 404 errors. What is the most likely cause?
medium
A. The root path is incorrect or missing the /static/ folder.
B. You forgot to restart nginx after changing the config.
C. The location block should use alias instead of root.
D. The file style.css is not readable by nginx.
Solution
Step 1: Understand root with location prefix
Root appends the full URI, so nginx looks for /var/www/html/static/style.css.
Step 2: Check folder structure
If the actual files are in /var/www/html without the static subfolder, nginx won't find them, causing 404.
Final Answer:
The root path is incorrect or missing the /static/ folder. -> Option A
Quick Check:
Root + URI must match actual file path [OK]
Hint: Root must include location path or use alias [OK]
Common Mistakes:
Not matching root path to location URI
Assuming config reload fixes path errors
Confusing root and alias usage
5. You want nginx to serve files from /srv/www/site when users request /files/, but without including /files/ in the file path. Which configuration correctly achieves this?
hard
A. location /files/ {
root /srv/www/site;
}
B. location /files/ {
alias /srv/www/site/files;
}
C. location /files/ {
alias /srv/www/site/;
}
D. location /files/ {
root /srv/www/site/files;
}
Solution
Step 1: Understand root vs alias behavior
Root appends full URI to path, alias replaces location prefix with given path.
Step 2: Match requirement to config
To serve files from /srv/www/site without /files/ in path, alias must be used.
Final Answer:
location /files/ {
alias /srv/www/site/;
} -> Option C
Quick Check:
Use alias to strip location prefix from file path [OK]
Hint: Use alias to avoid adding location prefix to path [OK]