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
Enable Brotli Compression in nginx
📖 Scenario: You manage a website running on an nginx server. To improve page load speed and reduce bandwidth, you want to enable Brotli compression, a modern compression method that makes files smaller before sending them to users.
🎯 Goal: Configure nginx to use Brotli compression for text-based files like HTML, CSS, and JavaScript.
📋 What You'll Learn
Create a basic nginx configuration block
Add Brotli compression settings
Enable Brotli compression for specific MIME types
Verify the configuration by printing the relevant settings
💡 Why This Matters
🌍 Real World
Web servers use compression to reduce file sizes sent to users, speeding up websites and saving bandwidth costs.
💼 Career
Knowing how to configure compression in nginx is a key skill for DevOps engineers and system administrators managing web infrastructure.
Progress0 / 4 steps
1
Create a basic nginx server block
Write a basic nginx server block with listen 80; and server_name example.com; inside http context.
Nginx
Hint
Start with http {} block, then add server {} inside it with the required directives.
2
Add Brotli compression module settings
Inside the http block, add brotli on; and brotli_comp_level 5; to enable Brotli compression and set compression level.
Nginx
Hint
Place Brotli settings inside http {} but outside server {}.
3
Enable Brotli for specific MIME types
Add brotli_types text/plain text/css application/javascript application/json application/xml; inside the http block to specify which file types to compress.
Nginx
Hint
List the MIME types separated by spaces after brotli_types.
4
Print the Brotli configuration
Write a print statement to display the Brotli settings: brotli on, brotli_comp_level 5, and the brotli_types list.
Nginx
Hint
Use three print statements to show each Brotli setting exactly as configured.
Practice
(1/5)
1. What is the main purpose of enabling Brotli compression in Nginx?
easy
A. To increase the security of the website
B. To reduce file sizes and speed up website loading
C. To change the website's color scheme
D. To block unwanted visitors
Solution
Step 1: Understand Brotli compression purpose
Brotli compression is designed to reduce the size of files sent from the server to the browser.
Step 2: Connect compression to website speed
Smaller files load faster, improving website speed and user experience.
Final Answer:
To reduce file sizes and speed up website loading -> Option B
Quick Check:
Brotli compression = faster loading [OK]
Hint: Compression reduces file size to speed up loading [OK]
Common Mistakes:
Thinking Brotli improves security directly
Confusing compression with design changes
Assuming it blocks visitors
2. Which of the following is the correct way to enable Brotli compression in an Nginx configuration?
easy
A. brotli on;
B. brotli_enable on;
C. enable_brotli true;
D. brotli_compression = yes;
Solution
Step 1: Recall Nginx Brotli syntax
The correct directive to enable Brotli compression is brotli on;.
Step 2: Check other options for syntax errors
Options A, C, and D use incorrect directive names or syntax not valid in Nginx.
Final Answer:
brotli on; -> Option A
Quick Check:
Enable Brotli = brotli on; [OK]
Hint: Use exact directive 'brotli on;' to enable compression [OK]
Common Mistakes:
Adding extra words like 'enable' or 'compression'
Using '=' instead of ';' to end directive
Wrong directive names
3. Given this Nginx snippet, what will happen when a browser requests a CSS file?
B. CSS files will not be compressed because brotli_types is missing
C. CSS files will be compressed with Brotli at level 5
D. All files will be compressed regardless of type
Solution
Step 1: Analyze the configuration
Brotli is enabled with brotli on; and compression level set to 5.
Step 2: Check brotli_types directive
Only files with MIME type text/css will be compressed, so CSS files are included.
Final Answer:
CSS files will be compressed with Brotli at level 5 -> Option C
Quick Check:
brotli_types text/css = CSS compressed [OK]
Hint: brotli_types controls which file types get compressed [OK]
Common Mistakes:
Assuming all files compress without brotli_types
Thinking compression level disables Brotli
Ignoring MIME type filtering
4. You enabled Brotli in Nginx but notice no files are compressed. Which configuration mistake could cause this?
medium
A. Missing brotli on; directive
B. Setting brotli_comp_level to 0
C. Not specifying brotli_types for file types
D. Using brotli on without a semicolon
Solution
Step 1: Check syntax correctness
In Nginx, directives must end with a semicolon. Missing it causes config errors.
Step 2: Understand impact of missing semicolon
Without the semicolon, Nginx will fail to load the config properly, so Brotli won't work.
Final Answer:
Using brotli on without a semicolon -> Option D
Quick Check:
Missing semicolon breaks config [OK]
Hint: Always end Nginx directives with a semicolon [OK]
Common Mistakes:
Ignoring semicolon syntax errors
Assuming 0 disables compression but config still loads
Thinking brotli_types is mandatory to enable Brotli
5. You want to optimize Brotli compression for your website serving HTML, CSS, and JavaScript files. Which Nginx configuration snippet correctly enables Brotli for these types with maximum compression level?
hard
A. brotli on;\nbrotli_comp_level 11;\nbrotli_types text/html text/css application/javascript;
B. brotli on;\nbrotli_comp_level 5;\nbrotli_types image/png image/jpeg;
C. brotli enable;\nbrotli_level 11;\nbrotli_types text/html text/css application/javascript;
D. brotli on;\nbrotli_comp_level 11;\nbrotli_types text/plain text/xml;
Solution
Step 1: Identify correct directive names and values
Enable Brotli with brotli on; and set max compression level with brotli_comp_level 11;.
Step 2: Choose correct MIME types for HTML, CSS, JavaScript
Use text/html, text/css, and application/javascript in brotli_types.
Step 3: Eliminate incorrect options
The snippet starting with 'brotli enable;' uses invalid directive names ('brotli_level' instead of 'brotli_comp_level'). The snippet with 'image/png image/jpeg' targets unsuitable file types. The snippet with 'text/plain text/xml' uses wrong MIME types and misses JavaScript.
Final Answer:
brotli on;\nbrotli_comp_level 11;\nbrotli_types text/html text/css application/javascript; -> Option A