白日依山尽,黄河入海流。欲穷千里目,更上一层楼。 -- 唐·王之涣

Nginx修改默认的Content-Type值

背景

公司在和QQ进行合作,需要通过特殊文件来进行相关校验和认证。之前其他第三方提供的是 txt 结尾的文本文件,但是苹果系统相关是通过一个apple-app-site-association的文件来校验的,注意这里没有文件后缀,在QQ侧请求的之后无法校验,是因为Header中的Content-Type不符合规范

分析及处理

1、Nginx安装之后 default_type的值默认配置为 application/octet-stream,而且目前已经配置很多域名,贸然的去修改这样的全局配置,可能应发不可用的问题

2、txt结尾的文件,放到网站根目录下默认会被识别响应为 text/plain

nginx-content-type.png

3、但是今天反馈的文件是没有后缀的,所以默认就成了 application/octet-stream, 浏览器请求会直接进行下载,而不是展示文件内容

4、针对该文件进行单独的配置,如下

1
2
3
4
5
6
7
8
9
10
11
12
13

server {
include local_ssl_port.conf;
include ssl/ssl.conf;
server_name xxx.colinspace.com;
root /data/project/blog;
include expires.conf;

location /.well-known/apple-app-site-association {
# 这里单独针对性的配置 default_type 为对方要求的格式
default_type application/json;
}
}

5、再次浏览器测试,展示为文件内容

作者

Colin

发布于

2022-06-28

许可协议