Bird
Raised Fist0
Nginxdevops~10 mins

Default type handling in Nginx - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to set the default MIME type to text/plain.

Nginx
default_type [1];
Drag options to blanks, or click blank then click option'
Aapplication/json
Btext/html
Ctext/plain
Dapplication/octet-stream
Attempts:
3 left
💡 Hint
Common Mistakes
Using a MIME type that is not plain text like application/json.
Forgetting the semicolon at the end of the directive.
2fill in blank
medium

Complete the code to disable the default MIME type by setting it to an empty value.

Nginx
default_type [1];
Drag options to blanks, or click blank then click option'
Anone
B'';
Coff
D''
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'none' or 'off' which are not valid values for this directive.
Including the semicolon inside the quotes.
3fill in blank
hard

Fix the error in the code to correctly set the default MIME type to application/octet-stream.

Nginx
default_type [1];
Drag options to blanks, or click blank then click option'
Aapplication/octet-stream;
Bapplication/octet-stream
Attempts:
3 left
💡 Hint
Common Mistakes
Including the semicolon inside the value string.
Omitting the semicolon at the end of the directive.
4fill in blank
hard

Fill both blanks to set the default MIME type to text/html and enable gzip compression.

Nginx
default_type [1];
gzip [2];
Drag options to blanks, or click blank then click option'
Atext/html
Bon
Coff
Dapplication/json
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'off' for gzip when compression is desired.
Setting default_type to a non-HTML MIME type.
5fill in blank
hard

Fill all three blanks to set the default MIME type to application/json, disable gzip, and set the server listen port to 8080.

Nginx
default_type [1];
gzip [2];
listen [3];
Drag options to blanks, or click blank then click option'
Atext/plain
Boff
C8080
Dapplication/json
Attempts:
3 left
💡 Hint
Common Mistakes
Confusing 'on' and 'off' for gzip directive.
Using the wrong port number for listen.
Setting default_type to a text MIME type instead of JSON.

Practice

(1/5)
1. What does the default_type directive do in an nginx configuration?
easy
A. Sets the MIME type for files without a known extension
B. Defines the default server port
C. Specifies the default root directory
D. Enables gzip compression by default

Solution

  1. Step 1: Understand the purpose of default_type

    The default_type directive tells nginx what MIME type to use when it cannot determine the file type from the extension.
  2. Step 2: Match the directive to its function

    Since it sets the fallback MIME type, it helps browsers know how to handle unknown files.
  3. Final Answer:

    Sets the MIME type for files without a known extension -> Option A
  4. Quick Check:

    default_type sets fallback MIME type = A [OK]
Hint: default_type sets fallback MIME type for unknown files [OK]
Common Mistakes:
  • Confusing default_type with server port settings
  • Thinking it sets root directory
  • Assuming it enables compression
2. Which of the following is the correct syntax to set the default MIME type to application/json inside an nginx http block?
easy
A. default_type 'application/json';
B. default_type application/json;
C. default_type: application/json;
D. default_type = application/json;

Solution

  1. Step 1: Recall nginx directive syntax

    nginx directives use the format: directive_name value; without equals or colons.
  2. Step 2: Identify the correct syntax for default_type

    The correct syntax is default_type application/json; with no quotes needed.
  3. Final Answer:

    default_type application/json; -> Option B
  4. Quick Check:

    Correct nginx directive syntax = D [OK]
Hint: nginx directives end with semicolon, no equals or colon [OK]
Common Mistakes:
  • Using equals sign (=) in directive
  • Adding colon (:) after directive
  • Putting quotes around MIME type unnecessarily
3. Given this nginx config snippet inside a location block:
default_type text/plain;

What will be the Content-Type header for a request to a file named unknownfile.xyz?
medium
A. text/plain
B. application/octet-stream
C. application/json
D. text/html

Solution

  1. Step 1: Identify the default_type setting

    The config sets default_type text/plain; inside the location block.
  2. Step 2: Determine MIME type for unknown extension

    Since .xyz is unknown, nginx uses the default_type value text/plain as Content-Type.
  3. Final Answer:

    text/plain -> Option A
  4. Quick Check:

    Unknown file uses default_type = A [OK]
Hint: Unknown extensions get default_type MIME type [OK]
Common Mistakes:
  • Assuming default is application/octet-stream
  • Confusing with text/html default
  • Ignoring location block override
4. You set default_type application/json; in your nginx server block, but requests to unknown file types still return text/html. What is the most likely cause?
medium
A. You forgot to reload nginx after changing config
B. The file extension is recognized, so default_type is ignored
C. default_type cannot be set in server block
D. Another default_type directive in a location block overrides it

Solution

  1. Step 1: Understand nginx directive inheritance

    Directives in location blocks override those in server blocks.
  2. Step 2: Identify override causing unexpected Content-Type

    If a location block sets default_type text/html;, it will override the server block setting.
  3. Final Answer:

    Another default_type directive in a location block overrides it -> Option D
  4. Quick Check:

    Location block overrides server block default_type = B [OK]
Hint: Location block default_type overrides server block [OK]
Common Mistakes:
  • Thinking default_type can't be set in server block
  • Forgetting to reload nginx
  • Assuming file extension is always unknown
5. You want nginx to serve unknown file types as application/octet-stream globally, but for a specific /images location, serve unknown files as image/png. Which configuration correctly achieves this?
hard
A. Set default_type application/octet-stream; only in location /images
B. In server block: default_type image/png; and in location /images: default_type application/octet-stream;
C. In http block: default_type application/octet-stream; and in location /images: default_type image/png;
D. Set default_type image/png; only in http block

Solution

  1. Step 1: Set global default_type in http block

    Setting default_type application/octet-stream; in http block applies globally to all requests.
  2. Step 2: Override default_type in specific location

    Setting default_type image/png; inside location /images overrides the global setting for that path.
  3. Final Answer:

    In http block: default_type application/octet-stream; and in location /images: default_type image/png; -> Option C
  4. Quick Check:

    Global default_type overridden by location block = C [OK]
Hint: Set global default_type in http, override in location [OK]
Common Mistakes:
  • Reversing global and location settings
  • Setting default_type only in location without global
  • Using server block instead of http for global