情况说明:
nginx将https转发至http请求,返回数据为null。
同时响应头丢失了Content-Type和 Transfer-Encoding属性,增加了Content-Length属性。
事故分析:
Transfer-Encoding和Content-Lengt本就是互斥属性,服务端返回的Object默认是Transfer-Encoding。且直接用http访问正常,但nginx转发后有问题,因此怀疑nginx转发的请求头有数据丢失导致服务端响应头格式出了问题。
事故解决:
nginx默认underscores in headers属性为 off,导致nginx在转发请求时会默认忽略带有"_"下划线的头信息。
因此修改nginx的配置文件,在http模块将此属性设置为on即可成功运行。
underscores_in_headers on;