项目结构是 nginx----> tomcat---->ftp 图片服务器。直接通过页面访问图片资源时,图片直接返回乱码,如图:
搜索了很多帖子,大概包含以下几种方法:
尝试1:将nginx 的配置文件中,加入以下代码:
add_header content-type "image/png";
这种方式,并不适用我的这种情况。因为我的nginx 反向代理,并没有固定的图片的访问路径。图片都是在 tomcat 的运行的Web项目中,如果改成此项,整个网站都不可以访问了。下面是我的nginx 反向代理项目的配置。
尝试2:将nginx 的配置文件中,加入编码配置:
charset utf-8;
如下图:
发现并未起作用。
经过一系列对nginx 的配置文件nginx.conf 的摸索,找到了一项配置,
add_header X-Content-Type-Options nosniff;
此配置的含义可以理解为:由nginx 自身去猜测文件类型,相应对应的格式。例如:猜测是图片类型,就会以图片的格式的响应。默认这个配置的开启的,就是不让nginx 猜测响应格式,由开发者指定。但是我这特殊,一个项目里的请求混淆的,恰好需要由nginx 去猜测响应格式。所以将此行注释掉,重启nginx,果然图片正常显示了!!!最终配置如下图: