nginx解决图片显示过慢,或者不显示

这篇具有很好参考价值的文章主要介绍了nginx解决图片显示过慢,或者不显示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题定位

经过一系列的排查(中间过程我就省略了,直接写重点了!),最终定位到是Nginx的问题。当我打开这位读者的网站后台管理系统,发现图片显示非常慢,在Nginx前端代理上查出如下错误信息。

[error] 28423#0: *5 connect() failed (111: Connection refused) while connecting to upstream

直接在后台服务器上用后台服务器的IP地址去访问,发现速度相当快,于是怀疑是Nginx的配置问题。

注意:当下载大的附件,或是页面中有大图片时,就会下载中断或是图片无法显示,也许你会说我用的Nginx缺省的配置也从来没有碰到过这种问题呀!我想说的是:那是因为你的网站没有大文件,至少没有大到使用Nginx的默认配置加载不出来。

这里,我给出一段Nginx的配置,如下所示。

location /file {
     root /home/file;
     index index.html index.htm;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header Host $host;
     proxy_pass http://127.0.0.1:8080 ;
     client_max_body_size  100m;
     client_body_buffer_size 128k;
     proxy_connect_timeout 600;
     proxy_read_timeout  600;
     proxy_send_timeout  600;
     proxy_buffer_size  32k;
     proxy_buffers   4 64k;
     proxy_busy_buffers_size 64k;
     proxy_temp_file_write_size 64k;
}

其中几个重要的参数如下所示。

  • proxy_connect_timeout 600; #nginx跟后端服务器连接超时时间(代理连接超时)

  • proxy_read_timeout 600; #连接成功后,后端服务器响应时间(代理接收超时)

  • proxy_send_timeout 600; #后端服务器数据回传时间(代理发送超时)

  • proxy_buffer_size 32k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小

  • proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置

  • proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)

  • proxy_temp_file_write_size 16k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传

看到这里,发现问题了,这位读者的Nginx有下面一行配置。

而他服务器上的图片基本都在100K~5M之间。

问题就出在proxy_temp_file_write_size上

当服务器上的文件超过该参数设置的大小时,Nginx会先将文件写入临时目录(缺省为Nginx安装目下/proxy_temp目录)

缺省Nginx是以nobody身份启动的,用ll 命令查看proxy_temp目录 nobody是proxy_temp目录的所有者,怪了那为什么没权限呢?接下来查看proxy_temp的父目录既Nginx安装目录。发现nobody竞然没权限,怪不得会出现上面的问题。

解决问题

定位到问题,接下来解决问题就比较简单了。可以使用两种方式解决这个问题,如下所示。

  • 设置任何人都可以写 proxy_temp目录,重启 Nginx 即可解决。

  • 直接更改proxy_temp_file_write_size的值,将其修改为大于图片和文件的大小,重启Nginx。

如果是以第一种方式解决问题的话,比如我的proxy_temp目录是/usr/local/nginx/proxy_temp,修改nginx.conf改为启动用户

#user  nobody;
#修改成
user  root;

如果还是报错

chmod -R 777 授权一下

如果是使用第二种方式解决问题的话,就可以直接修改nginx.conf文件,如下所示。文章来源地址https://www.toymoban.com/news/detail-441250.html


location /file {
     root /home/file;
     index index.html index.htm;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header Host $host;
     proxy_pass http://127.0.0.1:8080 ;
     client_max_body_size  100m;
     client_body_buffer_size 256k;
     proxy_connect_timeout 1200;
     proxy_read_timeout  1200;
     proxy_send_timeout  6000;
     proxy_buffer_size  32k;
     proxy_buffers   4 64k;
     proxy_busy_buffers_size 128k;
     proxy_temp_file_write_size 10m;
}

到了这里,关于nginx解决图片显示过慢,或者不显示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决opencv——python下载过慢的问题

    在现在opencv-python是解决下载过慢的问题,网络上的其他方法都已尝试,但是效果不理想。使用清华的下载源可以很快的解决这个问题。 pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple 参考文章:https://blog.csdn.net/qq_55359343/article/details/128189615

    2024年02月11日
    浏览(32)
  • nginx 配置后网站图片加载出来一半或者不出来

    项目进行nginx反向代理后发现图片和js、css等加载很慢,甚至加载不出来。 然后查看nginx的log,发现错误如下: 2023/08/29 17:15:11 [crit] 25439#0: *18 open() \\\"/usr/local/nginx/proxy_temp/5/00/0000000005\\\" failed (13: Permission denied) while reading upstream, client: 172.01.26.369, server: gitlab.abcdefg.com, request: \\\"GET /as

    2024年02月10日
    浏览(31)
  • 解决Github Markdown图片显示残缺的问题

    title: 解决Github Markdown图片显示残缺的问题 tags: 个人成长 categories: 杂谈 在Github存放Markdown文档,如果图片没有存放在Github服务器上,github会尝试生成Github图片缓存,使用Github图片缓存,进行实际的展示。但比较蛋疼的是,如果原图片尺寸很大,缓存图片失败,会只显示一部分

    2024年02月08日
    浏览(39)
  • 最新版pygame无法显示图片问题解决方法

    Hi~ o(* ̄▽ ̄*)ブ新人第一次写文章,可能比较差,不喜勿喷哦 最近在使用最新版的pygame时遇到了一个问题,当我使用常规的显示图片代码时,这图片不知道怎么肥四显示不出来了 下面是运行结果 好吧,什么都显示不出来 一开始我整个人都懵了,以为是blit那里出错了。然后

    2024年02月04日
    浏览(46)
  • 解决在vue中img标签不显示图片的问题

    在vue中, 经常会遇到img标签不展示的问题, 本人遇到两种, 都是因为webpack打包, 导致找不到路径, 所以不现实, 总结几个可以解决本地图片路径显示不出来的问题: 1.把图片放在src同级的static文件夹下。 2.把图片放在cdn上,把网络地址存在imgUrl里,然后直接去展示。 3.图片放在

    2024年02月13日
    浏览(28)
  • vue 在页面中使用阿里云oss网络图片,解决图片不显示的问题

    最近有一个线上抽奖的H5项目,为防止大量用户同时访问服务器而发生页面崩溃问题,前端尽量减少页面图片对服务器的请求,准备将页面中的图片都放到阿里云的oss中并购买cdn加速服务,减少服务器处理请求的压力。 但是将图片路径换成网络图片路径后,页面标签的图片和

    2024年02月07日
    浏览(71)
  • 【Java】itext 实现 html根据模板生成pdf 中文不显示/图片不显示问题解决

    工作中需要使用生成pdf记录,选取使用的是itext 生成 pdf方式。分享下实现方式及遇到的问题。 这里随便找个html课程表作为示例,添加了几张图片为了展示图片转pdf功能。 一:引入jar包 二:导入ftl文件 这块使用的是html语法,将文件后缀名改为ftl即可,在需要参数的地方通过

    2024年02月05日
    浏览(37)
  • 解决opencv中使用cv2.imshow不显示图片问题

    在使用opencv中的cv2.imshow显示图片的时候总会出现如下错误: The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function ‘cvShowImage’ 查找了很多资料发现是在安装opencv的时

    2024年02月07日
    浏览(39)
  • 解决react,<img>src使用require方法引入图片不显示问题

    解决方法: 再导入的图片后加.default即可 img src={require(\\\'../../images/bg.png\\\').default} alt=\\\"\\\" /   推荐阅读:https://www.cnblogs.com/qianxiaoniantianxin/p/14789826.html

    2024年02月15日
    浏览(32)
  • freemarker与flying-saucer-core实现html转图片显示图片方框的问题解决

    freemarker与flying-saucer-core实现html转图片方案在windows系统测试正常,到linux测试发现中文字体都是显示方框,经过排查为linux服务器中缺少中文字体,故此下面为linux安装字体的方法。

    2024年02月15日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包