Nginx 主配置文件中如何设置默认的 MIME 类型支持

作者:袖梨 2026-08-17

Nginx HTTP块中需三步配置MIME类型:先include mime.types加载最新映射表,再用types块追加或覆盖类型,最后设default_type作安全兜底;必须验证语法并重载生效。

在 Nginx 主配置文件(通常是 /etc/nginx/nginx.conf)的 http 块中设置默认 MIME 类型支持,核心是三件事:加载最新映射表、补充或覆盖类型、设定安全兜底值。不写对位置或顺序,配置就无效。

必须在 http 块里引入 mime.types

这一行是基础,不能省略,也不能放在 server 或 location 里:

  1. include mime.types; 必须写在 http { } 块内部,通常靠近开头
  2. 该文件由 Nginx 安装自带,常见路径有 /etc/nginx/mime.types/usr/share/nginx/mime.types
  3. Nginx 启动时靠它构建后缀到 MIME 的映射哈希表,.jsapplication/javascript 这类识别全靠它

用 types 块追加或修正类型

别直接改原始 mime.types 文件——升级会被覆盖。推荐在 include mime.types; 之后,同一 http 块里写内联 types

  1. 例如支持现代格式:types { application/javascript mjs; font/woff2 woff2; image/avif avif; application/wasm wasm; }
  2. 每行左边是 MIME 类型,右边是空格分隔的扩展名;重复扩展名以后面定义为准
  3. 顺序很重要:写在 include 后面,才能覆盖默认映射

显式设置 default_type 作为兜底

未匹配到任何扩展名时,Nginx 会用这个值设 Content-Type 响应头。默认是 text/plain,但多数生产环境建议:

  1. default_type application/octet-stream; —— 安全下载兜底,防止浏览器误执行未知文件
  2. 若服务纯 HTML 入口(如 ThinkPHP),可设为 default_type text/html;,避免 PHP 脚本被当文本下载
  3. 该指令放在 http 块里最稳妥,确保所有 server 都继承

修改后务必验证生效

配置不是写完就起作用,必须走完整流程:

  1. 运行 nginx -t 检查语法是否正确
  2. 执行 nginx -s reload 重载配置(不中断服务)
  3. curl -I https://your.site/file.js 查看 Content-Type 是否符合预期
  4. 如果返回 text/plain 或空,说明没匹配上——优先检查拼写(如 woff2 写成 wof2)、include 路径、或是否漏了 default_type

相关文章

精彩推荐