Bird
Raised Fist0
Nginxdevops~20 mins

Separate config files per site in Nginx - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Nginx Config Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
Output of nginx -t with separate site configs
You have two separate site config files in /etc/nginx/sites-available/ enabled via symlinks in /etc/nginx/sites-enabled/. What is the output of nginx -t if both configs are syntactically correct?
A
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Bnginx: [warn] conflicting server name in /etc/nginx/sites-enabled/site2.conf:15
Cnginx: [emerg] duplicate server name "example.com" in /etc/nginx/sites-enabled/site1.conf:10
Dnginx: [error] failed to open configuration file /etc/nginx/sites-enabled/site1.conf
Attempts:
2 left
💡 Hint
If configs are correct and enabled properly, nginx -t reports syntax ok and test successful.
❓ Configuration
intermediate
2:00remaining
Correct way to enable a site config in nginx
Which command correctly enables a site config file named mysite.conf located in /etc/nginx/sites-available/ by creating a symlink in /etc/nginx/sites-enabled/?
Acp /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/mysite.conf
Bmv /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/
Cln -s /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/mysite.conf
Drm /etc/nginx/sites-enabled/mysite.conf
Attempts:
2 left
💡 Hint
Enabling a site means linking the config, not copying or moving it.
❓ Troubleshoot
advanced
2:00remaining
Troubleshooting nginx site config not loading
You added a new site config file in /etc/nginx/sites-available/ and created a symlink in /etc/nginx/sites-enabled/. After reloading nginx, the site does not respond. What is the most likely cause?
AThe config file is in JSON format instead of nginx syntax
BThe symlink points to a non-existent file or has incorrect permissions
CThe server block in the config is missing a <code>listen</code> directive
Dnginx does not support multiple site config files
Attempts:
2 left
💡 Hint
Check if the symlink is valid and accessible by nginx.
🔀 Workflow
advanced
3:00remaining
Order of steps to add a new site with separate config
What is the correct order of steps to add a new website using separate config files in nginx?
A1,3,4,2
B1,2,3,4
C3,1,2,4
D1,3,2,4
Attempts:
2 left
💡 Hint
Always test config before reloading nginx.
✅ Best Practice
expert
3:00remaining
Best practice for managing multiple site configs in nginx
Which practice is best for managing multiple site configurations in nginx to ensure easy maintenance and minimal downtime?
AUse separate config files per site in sites-available, enable with symlinks in sites-enabled, test configs before reload
BKeep all site configs in a single large file and reload nginx after every change
CEdit the main nginx.conf directly for each site and restart nginx service to apply
DStore site configs in random directories and include them manually in nginx.conf
Attempts:
2 left
💡 Hint
Modular config files and testing before reload reduce errors and downtime.

Practice

(1/5)
1. What is the main benefit of using separate config files per site in nginx?
easy
A. It makes nginx run faster by loading fewer files.
B. It allows nginx to serve only one site at a time.
C. It automatically secures each site with HTTPS.
D. It keeps the nginx setup organized and easier to manage.

Solution

  1. Step 1: Understand config file organization

    Separate config files help keep settings for each site distinct and clear.
  2. Step 2: Recognize management benefits

    This organization makes it easier to update or troubleshoot individual sites without affecting others.
  3. Final Answer:

    It keeps the nginx setup organized and easier to manage. -> Option D
  4. Quick Check:

    Separate configs = better organization [OK]
Hint: Separate files mean easier site management [OK]
Common Mistakes:
  • Thinking separate files speed up nginx
  • Assuming separate files enable HTTPS automatically
  • Believing nginx serves only one site with separate files
2. Which nginx directive correctly includes all site config files from the sites-enabled directory?
easy
A. include /etc/nginx/conf.d/*;
B. include /etc/nginx/sites-available/*;
C. include /etc/nginx/sites-enabled/*;
D. include /etc/nginx/sites-enabled.conf;

Solution

  1. Step 1: Identify the correct directory for active sites

    The sites-enabled directory holds active site configs linked from sites-available.
  2. Step 2: Use the include directive properly

    Using include /etc/nginx/sites-enabled/*; loads all enabled site configs.
  3. Final Answer:

    include /etc/nginx/sites-enabled/*; -> Option C
  4. Quick Check:

    Include sites-enabled/* loads active sites [OK]
Hint: Include sites-enabled/* to load active sites [OK]
Common Mistakes:
  • Including sites-available instead of sites-enabled
  • Using wrong directory like conf.d for site configs
  • Missing the wildcard * to include all files
3. Given the command ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/, what is the effect?
medium
A. It creates a symbolic link to enable example.com site.
B. It copies the example.com config to sites-enabled.
C. It deletes the example.com config file.
D. It disables the example.com site.

Solution

  1. Step 1: Understand the ln -s command

    The command creates a symbolic link from the source to the target location.
  2. Step 2: Link sites-available to sites-enabled

    Linking example.com config into sites-enabled activates the site in nginx.
  3. Final Answer:

    It creates a symbolic link to enable example.com site. -> Option A
  4. Quick Check:

    ln -s from sites-available to sites-enabled enables site [OK]
Hint: ln -s link enables site by linking config [OK]
Common Mistakes:
  • Thinking ln -s disables the site
  • Assuming ln -s deletes or copies files
  • Confusing symbolic link with file copy
4. You added a new site config in sites-available but forgot to link it in sites-enabled. What happens when you reload nginx?
medium
A. The new site is ignored and not served.
B. Nginx throws a syntax error and fails to reload.
C. The new site is active and served by nginx.
D. Nginx deletes the config file automatically.

Solution

  1. Step 1: Understand sites-available vs sites-enabled

    Sites-available holds configs but only linked sites in sites-enabled are active.
  2. Step 2: Effect of missing link on reload

    Without a link, nginx ignores the new config and serves only enabled sites.
  3. Final Answer:

    The new site is ignored and not served. -> Option A
  4. Quick Check:

    Missing link means site ignored on reload [OK]
Hint: Link site config to sites-enabled to activate [OK]
Common Mistakes:
  • Expecting nginx to auto-enable new configs
  • Thinking nginx reload fails without link
  • Assuming nginx deletes unlinked configs
5. You want to add a new site with config in /etc/nginx/sites-available/newsite. Which sequence correctly enables it and reloads nginx safely?
hard
A. Copy config to sites-enabled, then run nginx -s reload
B. Create symbolic link in sites-enabled, test config with nginx -t, then reload nginx
C. Edit nginx.conf directly to add newsite, then restart nginx
D. Move config to sites-enabled, then reload nginx without testing

Solution

  1. Step 1: Enable site by linking config

    Create a symbolic link from sites-available/newsite to sites-enabled to activate it.
  2. Step 2: Test nginx config before reload

    Run nginx -t to check for syntax errors and avoid downtime.
  3. Step 3: Reload nginx to apply changes

    Use nginx -s reload to apply new config without stopping the server.
  4. Final Answer:

    Create symbolic link in sites-enabled, test config with nginx -t, then reload nginx -> Option B
  5. Quick Check:

    Link + test + reload = safe enable [OK]
Hint: Always test config before reload after linking site [OK]
Common Mistakes:
  • Copying instead of linking config files
  • Reloading nginx without testing config
  • Editing nginx.conf instead of using sites-available
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