Bird
Raised Fist0
Nginxdevops~20 mins

Gzip configuration (types, min_length) in Nginx - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Gzip Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
What is the effect of this gzip configuration snippet?
Given this nginx configuration snippet:
gzip on;
gzip_types text/plain application/json;
gzip_min_length 1000;

What happens when a client requests a JSON file of 800 bytes?
Nginx
gzip on;
gzip_types text/plain application/json;
gzip_min_length 1000;
AThe JSON file is sent uncompressed because its size is less than the gzip_min_length of 1000 bytes.
BThe JSON file is compressed only if the client supports gzip, regardless of size.
CThe JSON file is always compressed because gzip is enabled.
DThe JSON file is compressed before sending because its type matches and size is over 800 bytes.
Attempts:
2 left
💡 Hint
Check the minimum length setting and file size.
🧠 Conceptual
intermediate
2:00remaining
Which MIME types will be compressed with this configuration?
Consider this nginx gzip configuration:
gzip on;
gzip_types text/css application/javascript image/svg+xml;

Which of the following file types will be compressed?
Nginx
gzip on;
gzip_types text/css application/javascript image/svg+xml;
AFiles with MIME types text/css, application/javascript, and image/svg+xml will be compressed.
BOnly text/css and application/javascript files will be compressed; image/svg+xml is ignored.
CAll file types will be compressed because gzip is on.
DNo files will be compressed because gzip_types is missing text/html.
Attempts:
2 left
💡 Hint
gzip_types controls which MIME types are compressed.
Troubleshoot
advanced
2:00remaining
Why is gzip compression not applied to HTML files despite gzip on?
An nginx server has this configuration:
gzip on;
gzip_types text/css application/javascript;

Clients report HTML files are not compressed. Why?
Nginx
gzip on;
gzip_types text/css application/javascript;
Agzip_min_length is set too high for HTML files.
BHTML files are too small to be compressed by default.
Cgzip is off for HTML files by default.
DHTML files are not compressed because text/html is not included in gzip_types.
Attempts:
2 left
💡 Hint
Check which MIME types are listed in gzip_types.
Best Practice
advanced
2:00remaining
What is the recommended minimum gzip_min_length value to avoid compressing very small files?
Which gzip_min_length value is best to avoid wasting CPU compressing tiny files?
A20 (compress files larger than 20 bytes)
B1000 (compress files larger than 1000 bytes)
C100 (compress files larger than 100 bytes)
D0 (compress all files regardless of size)
Attempts:
2 left
💡 Hint
Small files often do not benefit from compression.
🔀 Workflow
expert
3:00remaining
Order the steps to enable gzip compression for JSON files larger than 500 bytes in nginx
Arrange these steps in the correct order to configure nginx to gzip compress JSON files only if they are larger than 500 bytes.
A3,1,2,4
B1,3,2,4
C1,2,3,4
D2,1,3,4
Attempts:
2 left
💡 Hint
Enable gzip first, then configure types and size, finally reload.

Practice

(1/5)
1. What does the gzip_types directive do in an nginx configuration?
easy
A. Defines the compression level for gzip
B. Specifies which MIME types should be compressed using gzip
C. Enables or disables gzip compression globally
D. Sets the minimum file size for gzip compression

Solution

  1. Step 1: Understand the purpose of gzip_types

    The gzip_types directive tells nginx which file types (MIME types) to compress when gzip is enabled.
  2. Step 2: Differentiate from other gzip directives

    gzip_min_length sets minimum size, gzip enables compression, and compression level is set by gzip_comp_level. So gzip_types is about file types.
  3. Final Answer:

    Specifies which MIME types should be compressed using gzip -> Option B
  4. Quick Check:

    gzip_types = file types to compress [OK]
Hint: gzip_types controls file types compressed, not size or enable [OK]
Common Mistakes:
  • Confusing gzip_types with gzip_min_length
  • Thinking gzip_types enables gzip globally
  • Mixing gzip_types with compression level settings
2. Which of the following is the correct syntax to set gzip minimum length to 1000 bytes in nginx?
easy
A. gzip_min_length = 1000;
B. gzip_minlength 1000;
C. gzip_min_length 1000;
D. gzip_min_length: 1000;

Solution

  1. Step 1: Recall nginx directive syntax

    nginx directives use the format directive_name value; without equals or colons.
  2. Step 2: Check spelling and punctuation

    The correct directive is gzip_min_length with underscore, no equals sign, and ends with semicolon.
  3. Final Answer:

    gzip_min_length 1000; -> Option C
  4. Quick Check:

    Correct syntax = gzip_min_length 1000; [OK]
Hint: Use underscore and semicolon, no equals or colon [OK]
Common Mistakes:
  • Using equals sign (=) in directive
  • Misspelling gzip_min_length as gzip_minlength
  • Using colon (:) instead of semicolon
3. Given this nginx config snippet:
gzip on;
gzip_types text/plain application/json;
gzip_min_length 1000;

What happens when a 500-byte JSON response is sent?
medium
A. The JSON response is sent uncompressed
B. The JSON response is compressed with gzip
C. The server returns an error due to size
D. The JSON response is compressed only if client supports gzip

Solution

  1. Step 1: Check gzip_min_length effect

    The gzip_min_length 1000; means only responses larger than 1000 bytes get compressed.
  2. Step 2: Compare response size and type

    The JSON response is 500 bytes, less than 1000, so it will not be compressed despite matching type.
  3. Final Answer:

    The JSON response is sent uncompressed -> Option A
  4. Quick Check:

    Response size < gzip_min_length = no compression [OK]
Hint: Check response size against gzip_min_length first [OK]
Common Mistakes:
  • Assuming all gzip_types are compressed regardless of size
  • Ignoring gzip_min_length setting
  • Confusing client support with server compression decision
4. You have this nginx config:
gzip on;
gzip_types text/html text/css;
gzip_min_length 512

Why might gzip not compress CSS files as expected?
medium
A. gzip is disabled by default
B. gzip_types does not include CSS MIME type
C. gzip_min_length value is too high
D. Missing semicolon after gzip_min_length directive

Solution

  1. Step 1: Check syntax of gzip_min_length

    The directive gzip_min_length 512 is missing a semicolon at the end, causing nginx to ignore or error on it.
  2. Step 2: Understand effect of syntax error

    Without proper syntax, gzip_min_length may not apply correctly, causing unexpected behavior in compression.
  3. Final Answer:

    Missing semicolon after gzip_min_length directive -> Option D
  4. Quick Check:

    Every directive must end with semicolon [OK]
Hint: Always end nginx directives with semicolon [OK]
Common Mistakes:
  • Forgetting semicolon at directive end
  • Assuming gzip_types excludes CSS by default
  • Thinking gzip is off unless explicitly enabled
5. You want to compress only JSON and JavaScript files larger than 1500 bytes using gzip in nginx. Which configuration snippet achieves this correctly?
hard
A. gzip on;\ngzip_types application/json application/javascript;\ngzip_min_length 1500;
B. gzip on;\ngzip_types json js;\ngzip_min_length 1500;
C. gzip on;\ngzip_types application/json application/javascript;\ngzip_min_length 1500
D. gzip on;\ngzip_types application/json application/javascript;\ngzip_min_length=1500;

Solution

  1. Step 1: Verify gzip is enabled

    The directive gzip on; correctly enables gzip compression.
  2. Step 2: Check gzip_types values

    Use correct MIME types: application/json and application/javascript are valid. Short forms like 'json' or 'js' are invalid.
  3. Step 3: Confirm gzip_min_length syntax

    The directive must end with semicolon and no equals sign. gzip_min_length 1500; is correct.
  4. Final Answer:

    gzip on;\ngzip_types application/json application/javascript;\ngzip_min_length 1500; -> Option A
  5. Quick Check:

    Correct MIME types + syntax + min_length = gzip on;\ngzip_types application/json application/javascript;\ngzip_min_length 1500; [OK]
Hint: Use full MIME types and end directives with semicolon [OK]
Common Mistakes:
  • Using shorthand MIME types like 'json' or 'js'
  • Omitting semicolon at directive end
  • Using equals sign in directives