浏览器访问图片提示Net::ERR_CONNECTION_RESET

前言

    小伙伴们,好久不见!今天记录一个前端页面中图片加载失败的问题及解决过程。

问题描述

业务系统中预览图片功能显示不完整或请求超时

前端使用框架: vue
在这里插入图片描述

查看浏览器的控制台和网络,看到的现象是 请求的图片下载到原体积的一部分,请求就停止了(比如图片268kb,请求去下载图片到168kb,请求停止),部分图片请求超时,控制台提示信息:
Net::ERR_CONNECTION_RESET 200
在这里插入图片描述

问题排查

  • 查看浏览器控制台的请求是否正常,请求图片相关的接口有无报错
  • 查看网络是否不通畅,导致请求超时
  • 查看被请求的图片是否存在,是否存在不完整的情况
  • 查看Nginx请求日志,分析日志
  • 查看本地/开发环境是否存在相同问题
  • 查看Nginx代理设置,图片转发是否失败
  • 查看服务器内存/存储空间占用情况

     根据以上排查过程进行了排查确认,最终定位到生产环境nginx的问题,发现是nginx默认的缓存空间不足,导致系统刚开始运行图片预览功能正常,经过近几十次的连续点击预览图片后,缓存空间被占满了,再有请求过来,在浏览器预设的超时时间内无法很快地作出响应,导致图片出现一部分最终显示请求fail。

问题解决

     修改相应的nginx配置如下(关注proxy_cache关键字相关配置 ):

user  root;
worker_processes  2;
events {
        worker_connections  1024;
}
http {
        include       mime.types;
        default_type  application/octet-stream;

         ##
         # Logging Settings
         ##


        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

        access_log /var/log/nginx/access.log main;
        error_log /var/log/nginx/error.log warn;

       
        #添加proxy_cache模块 /data/nginx/cache 本地缓存路径 cache_dir别名
        proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=cache_dir:10m inactive=1d max_size=1g;

        server {
                listen       80;
                location / {
                        root   /xx/static-dist;
                        index  index.html index.htm;
                }
                location /xx/api/
                {
                       
                        proxy_pass  http://backendIP:port/;
                        proxy_cache cache_dir;   #调用别名为cache_dir的这个缓存
                        proxy_cache_valid  200 302 2d;
                        proxy_cache_use_stale  error timeout invalid_header updating http_500 http_502 http_503 http_504;
                        client_max_body_size    1024m;
                }
        }
 }



        

参考资料

https://blog.csdn.net/weixin_46152207/article/details/111866678
https://www.cnblogs.com/zousc/p/12883961.html

总结

     本次生产环境部署使用的服务器内存/存储空间有限,暴露出此问题,提醒自己多去关注组件及代码的性能,内存消耗,空间消耗等,这些都是程序的安全隐患。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的大白啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值