Skip to content

Nginx types 模块详解

Nginx types 模块概述

在 Nginx 的配置中,types 块负责定义各种文件扩展名对应的 MIME 类型。这是 Web 服务器的一个核心功能,因为它指示浏览器如何处理或显示从服务器接收到的文件。

以下是 Docker 中 Nginx 默认配置文件 nginx.conf 的一个示例:

nginx
user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

默认 MIME 类型

在上述配置文件中,有一行如下所示:

nginx
default_type application/octet-stream;

这条指令设定了默认 MIME 类型为 application/octet-stream。当 Nginx 在 mime.types 文件中无法找到特定文件扩展名的 MIME 类型时,它将使用此默认类型。application/octet-stream 通常用来表示二进制数据或未知的文件类型。

MIME 类型定义文件

配置文件中包含以下语句:

nginx
include /etc/nginx/mime.types;

此指令命令 Nginx 加载名为 mime.types 的外部文件,该文件通常位于 /etc/nginx/ 目录下。mime.types 文件包括了大量的映射,这些映射将文件扩展名与相应的 MIME 类型关联起来。例如,该文件指定 .html 文件应使用 text/html 类型,而 .jpg 文件则应使用 image/jpeg 类型。

功能作用

通过适当配置 MIME 类型,Nginx 可以确保以正确的格式将文件发送至客户端,使浏览器能够正确渲染和处理不同类型的文件。例如,将 CSS 文件标记为 text/css 类型,使浏览器知道这些文件包含样式信息,并能够相应地处理它们。