Bird
Raised Fist0
Nginxdevops~5 mins

Main configuration file (nginx.conf) - 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 the purpose of the nginx.conf file?
The nginx.conf file is the main configuration file for the NGINX web server. It controls how NGINX behaves, including server settings, modules, and how requests are handled.
Click to reveal answer
beginner
Name the main blocks inside nginx.conf.
The main blocks are: events (handles connection processing), http (handles web traffic), and server (defines virtual hosts).
Click to reveal answer
beginner
What does the worker_processes directive control?
It sets how many worker processes NGINX will run. More workers can handle more connections, like having more cashiers in a store to serve customers faster.
Click to reveal answer
beginner
Explain the role of the server block in nginx.conf.
The server block defines a virtual server. It tells NGINX how to respond to requests for a specific domain or IP, including ports, root folders, and rules.
Click to reveal answer
beginner
How do you reload NGINX after changing nginx.conf without downtime?
Use the command nginx -s reload. This tells NGINX to apply changes smoothly without stopping the server, like changing a light bulb without turning off the room.
Click to reveal answer
Which block in nginx.conf handles web traffic settings?
Ahttp
Bevents
Cserver
Dlocation
What does the worker_connections directive specify?
ANumber of worker processes
BNumber of connections each worker can handle
CPort number for the server
DTimeout for client connections
Where do you define the root folder for your website in nginx.conf?
AInside the <code>http</code> block only
BInside the <code>events</code> block
CIn the <code>worker_processes</code> directive
DInside the <code>server</code> block
What command reloads NGINX configuration without downtime?
Anginx -s reload
Bnginx -s stop
Cnginx -s start
Dnginx -s restart
Which directive controls how many worker processes NGINX runs?
Aserver_name
Bworker_connections
Cworker_processes
Dlisten
Describe the main sections of the nginx.conf file and their roles.
Think of how NGINX organizes its tasks like a team with different roles.
You got /3 concepts.
    Explain how to safely apply changes made to nginx.conf without stopping the web server.
    Imagine changing a part of a machine while it keeps running.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the primary purpose of the nginx.conf file in NGINX?
      easy
      A. To manage user accounts and permissions
      B. To store website content like HTML and images
      C. To log errors and access information
      D. To configure how NGINX handles web requests and server behavior

      Solution

      1. Step 1: Understand the role of nginx.conf

        The nginx.conf file is the main configuration file that controls how NGINX behaves and processes requests.
      2. Step 2: Differentiate from other files

        Files like logs store errors or access info, and website content files hold HTML/images, but nginx.conf sets server rules.
      3. Final Answer:

        To configure how NGINX handles web requests and server behavior -> Option D
      4. Quick Check:

        Main config file = server behavior [OK]
      Hint: Remember: nginx.conf sets server rules, not content or logs [OK]
      Common Mistakes:
      • Confusing nginx.conf with website files
      • Thinking nginx.conf stores logs
      • Assuming nginx.conf manages users
      2. Which of the following is the correct syntax to include another configuration file inside nginx.conf?
      easy
      A. include /etc/nginx/conf.d/*.conf;
      B. import /etc/nginx/conf.d/*.conf;
      C. load /etc/nginx/conf.d/*.conf;
      D. attach /etc/nginx/conf.d/*.conf;

      Solution

      1. Step 1: Recall the directive for including files

        NGINX uses the include directive to add other config files inside nginx.conf.
      2. Step 2: Check syntax correctness

        The correct syntax is include path; with a semicolon. Other words like import, load, attach are invalid in NGINX.
      3. Final Answer:

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

        Include directive = include [OK]
      Hint: Use 'include' to add files, ends with semicolon [OK]
      Common Mistakes:
      • Using 'import' or 'load' instead of 'include'
      • Forgetting the semicolon at the end
      • Wrong directive names
      3. Given this snippet from nginx.conf:
      http {
          server {
              listen 80;
              server_name example.com;
              location / {
                  root /var/www/html;
              }
          }
      }
      What will happen when a user visits http://example.com/?
      medium
      A. NGINX serves files from /var/www/html directory
      B. NGINX returns a 404 error because root is missing a semicolon
      C. NGINX redirects to HTTPS automatically
      D. NGINX blocks the request due to missing listen directive

      Solution

      1. Step 1: Analyze the server block

        The server listens on port 80 and responds to requests for example.com. The location / block sets the root directory to /var/www/html.
      2. Step 2: Understand the effect of root directive

        When a user visits the site root, NGINX serves files from /var/www/html. The semicolon is present, so syntax is correct.
      3. Final Answer:

        NGINX serves files from /var/www/html directory -> Option A
      4. Quick Check:

        Root directive sets file location = serve files [OK]
      Hint: Root directive points to file folder served [OK]
      Common Mistakes:
      • Assuming missing semicolon causes error (it's present)
      • Thinking HTTPS redirect happens automatically
      • Ignoring listen directive presence
      4. Identify the error in this nginx.conf snippet:
      http {
          server {
              listen 80
              server_name mysite.com;
              location / {
                  root /usr/share/nginx/html;
              }
          }
      }
      medium
      A. root directive path is incorrect
      B. server_name directive is invalid
      C. Missing semicolon after listen 80
      D. location block cannot be inside server block

      Solution

      1. Step 1: Check syntax of directives

        Each directive must end with a semicolon. The line listen 80 is missing a semicolon.
      2. Step 2: Validate other directives

        The server_name and root directives are correctly written. The location block is correctly nested inside server.
      3. Final Answer:

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

        Every directive ends with semicolon [OK]
      Hint: Check every directive ends with semicolon [OK]
      Common Mistakes:
      • Ignoring missing semicolon errors
      • Thinking server_name syntax is wrong
      • Misunderstanding block nesting rules
      5. You want to serve two websites on the same NGINX server using nginx.conf. Which configuration correctly sets up two server blocks for site1.com and site2.com on port 80?
      hard
      A.
      http {
          server {
              listen 80;
              server_name site1.com site2.com;
              root /var/www/site1;
          }
      }
      B.
      http {
          server {
              listen 80;
              server_name site1.com;
              root /var/www/site1;
          }
          server {
              listen 80;
              server_name site2.com;
              root /var/www/site2;
          }
      }
      C.
      http {
          server {
              listen 80;
              server_name site1.com;
              root /var/www/site1;
          }
          location /site2 {
              root /var/www/site2;
          }
      }
      D.
      http {
          server {
              listen 80;
              server_name site1.com;
              root /var/www/site1;
          }
          server {
              listen 8080;
              server_name site2.com;
              root /var/www/site2;
          }
      }

      Solution

      1. Step 1: Understand multiple server blocks

        To serve two sites on the same port, create two separate server blocks each with its own server_name and root.
      2. Step 2: Evaluate each option

        http {
            server {
                listen 80;
                server_name site1.com;
                root /var/www/site1;
            }
            server {
                listen 80;
                server_name site2.com;
                root /var/www/site2;
            }
        }
        correctly defines two server blocks both listening on port 80 with different server_name and root.
        http {
            server {
                listen 80;
                server_name site1.com site2.com;
                root /var/www/site1;
            }
        }
        combines names in one block, serving only one root.
        http {
            server {
                listen 80;
                server_name site1.com;
                root /var/www/site1;
            }
            location /site2 {
                root /var/www/site2;
            }
        }
        uses location incorrectly for separate site.
        http {
            server {
                listen 80;
                server_name site1.com;
                root /var/www/site1;
            }
            server {
                listen 8080;
                server_name site2.com;
                root /var/www/site2;
            }
        }
        uses different ports, not both on 80.
      3. Final Answer:

        Two server blocks on port 80 with separate server_name and root -> Option B
      4. Quick Check:

        Separate server blocks = separate sites [OK]
      Hint: Use separate server blocks with unique server_name for each site [OK]
      Common Mistakes:
      • Combining multiple domains in one server block with one root
      • Using location blocks instead of server blocks for separate sites
      • Assigning different ports when same port is required