千家信息网

怎么解决Nginx引起的图片显示过慢,文件下载不完全问题

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要讲解了"怎么解决Nginx引起的图片显示过慢,文件下载不完全问题",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么解决Nginx引起的图片
千家信息网最后更新 2026年10月31日怎么解决Nginx引起的图片显示过慢,文件下载不完全问题

这篇文章主要讲解了"怎么解决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有下面一行配置。

proxy_temp_file_write_size 16k;

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

问题就出在proxy_temp_file_write_size上,当服务器上的文件超过该参数设置的大小时,Nginx会先将文件写入临时目录(缺省为Nginx安装目下/proxy_temp目录),缺省Nginx是以nobody身份启动的,用ls -al 命令查看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,用如下命令将/usr/local/nginx/proxy_temp目录设置为任何人都可以写,问题解决。

chmod -R 777 /usr/local/nginx/proxy_temp/

如果是使用第二种方式解决问题的话,就可以直接修改nginx.conf文件,如下所示。

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引起的图片显示过慢,文件下载不完全问题"的内容了,经过本文的学习后,相信大家对怎么解决Nginx引起的图片显示过慢,文件下载不完全问题这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

问题 文件 服务器 目录 服务 图片 大小 代理 配置 文件下载 后台 方式 时间 学习 定位 缓冲 接下来 信息 内容 参数 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 小米移动互联网科技园 广州淘业互联网络科技 科技互联网企业 科技平台互联网 广州互联网科技公司 互联网女皇 腾讯科技 上海致骋互联网科技 兼蜜互联网科技 多迪互联网科技有限公司 互联网公司会议桌创意科技软装饰 互联网校园科技培训 荆州市昕露互联网络科技有限公司 互联网科技公司实习生 速维有品互联网信息科技(苏州)有限公司 群盈汇互联网科技有限公司 互联网公司高科技产品 上海乐五互联网科技有限公司 求路客互联网科技电话 互联网科技对化妆品行业 小牛互联网科技有限公司地址 咖啡 蓝思科技飞鸽互联网 中国互联网科技发展 奇酷互联网络科技 富国互联网科技创新基金 昭通云南众福互联网科技有限公司 互联网为啥属于高科技 湖北码尼互联网科技有限公司电话 河南猎农互联网科技有限公司 萌小萌互联网科技河南有限公司
0