MIME
MIME 标准允许在数据传输时标识文件的类型和子类型。它的基本结构是一个主类型和一个子类型,中间用斜杠分隔,例如:text/html
、image/jpeg
、application/pdf
等。主类型通常表示文件的大类,而子类型更具体地表示了文件的具体类型或格式。
MIME 类型对于 Web 服务器和浏览器来说非常重要,因为它们用于确定如何处理收到的文件。
类型
type
type {...};
定义 MIME type 到文件扩展名的映射
配置块:http、server、location
types
types { ... ... ... };
多个扩展名可以映射到同一个 MIME type
配置块:http、server、location
default_type
default_type MIME-type;
如果请求的文件类型未知,则使用设置默认的 MIME type
默认:text/plain
配置块:http、server、location
hash
types_hash_bucket_size
types_hash_bucket_size size;
NGINX 使用散列表来存储 MIME type 与文件扩展名,types_hash_bucket_size
设置了每个散列桶所占内存大小。
默认:32|64|128
配置块:http、server、location
types_hash_max_size
types_hash_max_size size;
types_hash_max_size
越大会消耗更多内存,但散列冲突率会更低。
默认:1024
配置块:http、server、location
Example
配置 MIME 类型
在配置文件中找到或添加 types
指令来设置 MIME 类型。这个指令通常位于 http
块内部。下面是一个示例:
http { include mime.types; default_type application/octet-stream; # 自定义 MIME 类型 types { text/html html htm shtml; text/css css; text/xml xml; image/gif gif; image/jpeg jpeg jpg; application/javascript js; application/atom+xml atom; application/rss+xml rss; # 其他类型... } }
-
include mime.types;
:这个指令将包含 Nginx 默认的 MIME 类型文件。这个文件通常位于/etc/nginx/mime.types
,包含了大量的 MIME 类型定义。 -
default_type application/octet-stream;
:如果请求的文件类型未知,则使用application/octet-stream
类型。 -
types { ... }
:这是自定义 MIME 类型的部分。每行表示一种 MIME 类型,后面跟着该类型对应的文件扩展名列表。
-
text/html html htm shtml;
:定义了 HTML 类型的 MIME 类型,它将应用于.html
,.htm
, 和.shtml
类型的文件。 -
image/jpeg jpeg jpg;
:定义了 JPEG 图片类型的 MIME 类型,它将应用于.jpeg
和.jpg
类型的文件。 -
application/javascript js;
:定义了 JavaScript 文件的 MIME 类型,它将应用于.js
类型的文件。
重启 Nginx
当你完成 MIME 类型的配置后,确保保存配置文件,并重启 Nginx 以使更改生效。你可以使用以下命令重启 Nginx:
bashsudo systemctl restart nginx
这样配置后,Nginx 将在处理文件时发送正确的 MIME 类型,以便客户端(如浏览器)能够正确解释这些文件。