nginx-服务器图片显示不全(ERR_CONTENT_LENGTH_MISMATCH)

环境:Linux
项目:SpringBoot2.x+nginx

SpringBoot2.x使用的是内置的Tomcat服务器,用户若想通过http://xxx.net/配置名.png获取图片,那么需要有如下配置:

server:
  port: 9999
  servlet:
    context-path: /restful-client
  tomcat:
    uri-encoding: UTF-8
  static:
    pictureLocation: file:/app/share/picture/   
@Configuration
public class MvcConfig implements WebMvcConfigurer {

    @Value("${server.static.pictureLocation}")
    private String pictureLocation;

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //将本地资源交由SpringBoot2.x内置tomcat发布
        registry.addResourceHandler("/pictureLocation/**").addResourceLocations(pictureLocation);     
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
    }
}

图片位置:file:/app/share/picture/02/yyy.png
请求url:http://xxx.net/restful-client/pictureLocation/02/yyy.png便可以获取到服务器上的图片。

但是获取图片时,发现大图片只会显示一半,而小图片是可以全部显示的,如图:

问题描述.png

问题原因:

Nginx代理后会有相应的代理缓存区,缓存区大小默认只有几十K,某些版本的nginx默认设置中没有相关处理,导致部分文件代理时会出现加载不全的现象,其实不仅仅是JS文件,只是因为框架的JS文件略大,所以经常出现类似问题。

修改nginx配置

server{
    ...
    //增加/修改下列配置
    proxy_buffer_size 128k;
    proxy_buffers   32 128k;
    proxy_busy_buffers_size 128k;
    proxy_temp_file_write_size 128k;
}

你可能感兴趣的:(nginx-服务器图片显示不全(ERR_CONTENT_LENGTH_MISMATCH))