「Nginx」图片显示过慢,文件下载不完全,竟然是Nginx的锅
off999 2025-02-04 15:38 30 浏览 0 评论
写在前面
最近,一名读者跟我说他通过浏览器访问自己的服务器时,图片显示的非常慢,以至于在浏览器中都无法完全加载出来,下载文件时,更是恼火,文件根本就无法完全下载下来。而且奇怪的是这位读者所在的网络是没啥问题的。于是,我便开始帮他排查各种问题。。。
问题定位
经过一系列的排查(中间过程我就省略了,直接写重点了!),最终定位到是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;
}当然,我也帮这位读者优化了一些其他的配置项。
好了,今天就聊到这儿吧!别忘了点个赞,给个在看和转发,让更多的人看到,一起学习,一起进步!!
写在最后
如果你觉得冰河写的还不错,请微信搜索并关注「 冰河技术 」微信公众号,跟冰河学习高并发、分布式、微服务、大数据、互联网和云原生技术,「 冰河技术 」微信公众号更新了大量技术专题,每一篇技术文章干货满满!不少读者已经通过阅读「 冰河技术 」微信公众号文章,吊打面试官,成功跳槽到大厂;也有不少读者实现了技术上的飞跃,成为公司的技术骨干!如果你也想像他们一样提升自己的能力,实现技术能力的飞跃,进大厂,升职加薪,那就关注「 冰河技术 」微信公众号吧,每天更新超硬核技术干货,让你对如何提升技术能力不再迷茫!
相关推荐
- 骁龙cpu处理器排行榜(骁龙cpu处理器排行榜2024)
-
Top1、骁龙888plus(毫无疑问顶级处理器)Top2、骁龙888(2021上半年顶级处理器)Top3、骁龙870(目前各大厂商旗舰机均有搭载的高级处理器)Top4、骁龙865plus(2020下...
- 电脑上永久删除的文件怎么恢复
-
电脑删除的文件首先需要看所删除的文件是否被覆盖丢失,如果没有被覆盖的话,一般可以借助相应数据恢复软件进行扫描和修复,但如果数据覆盖的话,也就无法进行修复。永久删除也是如此,因为数据恢复的前提是:所删除...
- 考试时心态崩了怎么办(考试心态崩了怎么安慰)
-
1、首先要调整好心态,考试何其多,不以一次成败论英雄。失败也是对自己心志的一种锻炼,谁的人生可能一帆风顺,总会有挫折的,一定要勇敢、坚强面对,不可逃避。2、要反思自己为什么考砸了。是不是没有认真审题,...
- win10平板电脑重装系统(windows平板重装)
-
Windows10操作系统,重新安装Windows7操作系统是没有问题的。你把安装光盘直接放入光驱,按照引导步骤一步一步安装就可以了。还是建议用10操作系统,它要比7操作系统更加先进。10操作系统...
-
- 如何确定电脑主板坏了(如何知道电脑主板坏了)
-
1、如果主板坏了会不通电,这种情况下电脑的开关机键和重启键是没有任何作用的。如果是突然之间出现的情况,检查开关接线没有任何问题的情况下就是主板损坏。2、如果主板芯片损坏,则就是开机无反应或是各风扇都转,显示器无反应。另外,能开机的话,并不一...
-
2025-12-07 02:03 off999
- 路由器十大名牌排名榜(路由器排名前十的品牌)
-
从十大无线路由器排行榜来看,是这样的:1.网件无线路由器2.华硕无线路由器3.TP-LINK无线路由器4.华为无线路由器5.腾达无线路由器6.水星无线路由器7.磊科无线路由器8.小米无线路由器9.迅捷...
- 一台打印机如何多台电脑使用
-
(1)需要共享打印机的电脑必须在同一局域网下;(2)连接打印机的那台电脑和打印机必须保持开机状态。二、具体操作方法和步骤:(1)先点开始【再点设备和打印机】首先点击电脑左下角的开始按钮,在弹出的菜单上...
-
- tplink路由器设置网址打不开
-
碰到这种情况可以尝试下面几种方法,还是无法打开TP-Link路由器的设置网址,则多半是这台TP-Link路由器本身问题。一、输入正确的设置网址TP-Link系列的无线路由器,不同的型号设置网址也不一样,192.168.1.1、192.168...
-
2025-12-07 00:03 off999
- win7 纯净版ghost(win7纯净版ghost文件)
-
win7ghost备份系统的步骤:1、进入ghost界面,选择Local一Partition一ToImage;2、选择要操作的硬盘;3、选择要备份的分区;4、设置镜像文件的保存路径,点Save;5...
- 98版五笔字型字根表(五笔98版字根表高清)
-
五笔字型98版的字根表如下:一、1区横起笔11G王旁青头五夫一,12F土干十寸未甘雨,13D大犬戊其古石厂,14S木丁西甫一四里,15A工戈草头右框七。二、2区竖起笔21H目上卜止虎头具,...
- 电脑黑屏出现一堆字母(电脑屏幕黑屏突然又出现很多字母怎么办)
-
先尝试修复,不行就重装系统:第一、有可能是系统有问题了,可能的解决办法:1、开机不断点击F8键,进入系统操作选单,选“最后一次正确配置”,重启电脑,看能否解决。2、开机不断点击F8键,进入系统操作选单...
- 怎么清理系统数据(怎么清理系统数据安卓)
-
要清理系统占用的内存,可以尝试以下方法:1.关闭不必要的程序:打开任务管理器(在Windows中按Ctrl+Shift+Esc),查看运行中的程序和进程,关闭不必要的应用程序和任务,以释放内...
- 手机自动更新在哪里关闭(oppo软件自动更新怎么关闭)
-
1、首先要保证你的手机已经代开“开发者模式”,这样才能关闭或者打开系统自动更新;2、找到手机上的“设置”并点击;3、在设置页面找到“开发者选项”并点击;4、在开发者选项找到“系统自动更新”,因为系统默...
- ae(aed是什么意思)
-
跨境电商里说的AE平台指的是AliExpress,也就是我们常说的四大平台之一的速卖通。速卖通是阿里巴巴旗下针对跨境出口,面向全球市场打造的跨境电商交易平台,被称为“国际版淘宝”,是全球第三大英文在线...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
使用 python-fire 快速构建 CLI_如何搭建python项目架构
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
