Bird
Raised Fist0
Nginxdevops~5 mins

MIME types configuration in Nginx - 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 a MIME type in the context of web servers like nginx?
A MIME type tells the browser what kind of file it is receiving, such as text, image, or video, so the browser knows how to handle or display it.
Click to reveal answer
beginner
Where does nginx typically store MIME type configurations?
In the file usually named mime.types, which is included in the main nginx configuration file.
Click to reveal answer
beginner
How do you include MIME types in the nginx configuration?
By using the directive include mime.types; inside the http block of the nginx config file.
Click to reveal answer
intermediate
What is the purpose of the default_type directive in nginx?
It sets the MIME type to use when a file's type is not found in the MIME types list, often set to application/octet-stream.
Click to reveal answer
intermediate
How would you add a custom MIME type for files with extension .abc in nginx?
Add a line like application/x-abc abc; inside the types block in the mime.types file or directly in the nginx config.
Click to reveal answer
What does the MIME type text/html tell the browser?
AThe file is a web page and should be displayed as HTML
BThe file is an image
CThe file is a video
DThe file is a compressed archive
Where do you include the MIME types file in nginx configuration?
AInside the <code>location</code> block
BInside the <code>server</code> block
CInside the <code>http</code> block
DAt the end of the config file
What happens if nginx cannot find a MIME type for a file?
AIt refuses to serve the file
BIt uses the <code>default_type</code> setting
CIt guesses the type automatically
DIt serves the file as plain text
How do you define a new MIME type for extension .xyz?
AAdd <code>application/xyz xyz;</code> in the <code>types</code> block
BRename the file to <code>.txt</code>
CChange the file content to HTML
DRestart nginx without changes
What file extension is commonly associated with the MIME type image/png?
A.jpg
B.svg
C.gif
D.png
Explain how nginx uses MIME types to serve files correctly to browsers.
Think about how nginx tells the browser what kind of file it is sending.
You got /4 concepts.
    Describe the steps to add a custom MIME type for a new file extension in nginx.
    Focus on where and how to add the new MIME type mapping.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of configuring MIME types in nginx?
      easy
      A. To tell browsers how to handle different file types
      B. To set the server's IP address
      C. To define user access permissions
      D. To configure server logging format

      Solution

      1. Step 1: Understand MIME types role

        MIME types tell browsers what kind of content is being sent, so they can handle it properly.
      2. Step 2: Relate to nginx configuration

        In nginx, configuring MIME types maps file extensions to content types for correct browser handling.
      3. Final Answer:

        To tell browsers how to handle different file types -> Option A
      4. Quick Check:

        MIME types = browser file handling [OK]
      Hint: MIME types = file type instructions for browsers [OK]
      Common Mistakes:
      • Confusing MIME types with server IP settings
      • Thinking MIME types control user permissions
      • Mixing MIME types with logging configuration
      2. Which of the following is the correct syntax to define MIME types in nginx configuration?
      easy
      A. mime_types { html text/html; css text/css; }
      B. types { .html text/html; .css text/css; }
      C. types { html: text/html; css: text/css; }
      D. mime { .html = text/html; .css = text/css; }

      Solution

      1. Step 1: Recall nginx MIME types syntax

        The correct block is types { .ext mime/type; } with semicolons and dot before extension.
      2. Step 2: Compare options

        types { .html text/html; .css text/css; } matches correct syntax with types { .html text/html; .css text/css; }.
      3. Final Answer:

        types { .html text/html; .css text/css; } -> Option B
      4. Quick Check:

        Correct syntax uses 'types' block with dot extensions [OK]
      Hint: Use 'types { .ext mime/type; }' with dots and semicolons [OK]
      Common Mistakes:
      • Omitting dots before file extensions
      • Using colons or equals instead of spaces
      • Wrong block name like 'mime_types' or 'mime'
      3. Given this nginx config snippet:
      types {
        .json application/json;
        .xml application/xml;
      }

      What MIME type will nginx send for a file named data.json?
      medium
      A. application/json
      B. text/plain
      C. application/xml
      D. text/html

      Solution

      1. Step 1: Check the file extension

        The file is named data.json, so the extension is .json.
      2. Step 2: Match extension to MIME type in config

        The config maps .json to application/json.
      3. Final Answer:

        application/json -> Option A
      4. Quick Check:

        .json = application/json [OK]
      Hint: Match file extension to MIME type in 'types' block [OK]
      Common Mistakes:
      • Confusing .json with .xml MIME type
      • Assuming default text/plain without config
      • Ignoring the dot before extension
      4. You added this to your nginx config:
      types {
        .txt text/plain
        .md text/markdown;
      }

      Why might nginx fail to start?
      medium
      A. MIME types cannot include 'text/markdown'
      B. Wrong block name 'types' instead of 'mime_types'
      C. File extensions must not have dots
      D. Missing semicolon after .txt MIME type

      Solution

      1. Step 1: Check syntax for each MIME type line

        Each line must end with a semicolon; the line for .txt is missing it.
      2. Step 2: Validate block name and extensions

        The block name types is correct, and dots before extensions are required.
      3. Final Answer:

        Missing semicolon after .txt MIME type -> Option D
      4. Quick Check:

        Every MIME type line ends with semicolon [OK]
      Hint: Check semicolons after each MIME type line [OK]
      Common Mistakes:
      • Forgetting semicolon at line end
      • Changing 'types' block name incorrectly
      • Removing dots before extensions
      5. You want nginx to serve a new file type .abc with MIME type application/x-abc. Which config snippet correctly adds this without removing existing types?
      hard
      A. mime_types { .abc application/x-abc; }
      B. types { .abc application/x-abc; }
      C. types { include mime.types; .abc application/x-abc; }
      D. types { .abc = application/x-abc; }

      Solution

      1. Step 1: Preserve existing MIME types

        To keep existing types, include the default mime.types file inside the types block.
      2. Step 2: Add new MIME type after include

        After including existing types, add .abc application/x-abc; to extend the list.
      3. Final Answer:

        types { include mime.types; .abc application/x-abc; } -> Option C
      4. Quick Check:

        Include existing types then add new ones [OK]
      Hint: Include mime.types before adding new MIME types [OK]
      Common Mistakes:
      • Overwriting existing types by not including mime.types
      • Using wrong block name 'mime_types'
      • Using equals sign instead of space