nginx解决图片显示过慢,下载不完全的问题

nginx解决图片显示过慢,下载不完全的问题,第1张

nginx解决图片显示过慢,下载不完全的问题

详细介绍了nginx处理图片显示信息慢,下载不完整的关键问题。原文中的解读非常细腻,有助于大家更好的理解、学习和训练,有兴趣的盆友可以掌握。

写在前面

最近有读者跟我说,他按照电脑浏览器浏览自己的服务器时,图片显示信息太慢,在电脑浏览器上无法完全加载。下载文档时,他很生气,文档根本下载不完。而且令人费解的是,这位读者所属的互联网没有任何问题。所以,我就开始帮他检查各种问题。。。

精准定位难题

经过一系列的检查(中间我也省略了整个过程,所以马上写了重点!),最后,准确定位是Nginx的问题。当我们打开这个读者的网站后台管理智能管理系统时,发现图片显示信息非常慢,并在Nginx前端开发代理上发现如下错误报告。

[error]28423#0:*5connect()failed(111:Connectionrefused)whileconnectingtoupstream

马上把后台管理服务器的IP地址放到后台管理服务器上浏览,发现速度很快,所以怀疑是Nginx的一个难题。

注意:当下载大附件或网页中有大图片时,下载会结束或图片不会显示。或许你可以说我用的Nginx的默认设置从来没有遇到过这样的问题!我想对你说的是:那是因为你的网址没有大文件,至少没有大到用Nginx的默认设置加载不了。

在这里,我拿出一个Nginx设备,如下图。

location/file{ root/home/file; indexindex.htmlindex.htm; proxy_set_headerX-Real-IP$remote_addr; proxy_set_headerHost$host; proxy_passhttp://127.0.0.1:8080; client_max_body_size100m; client_body_buffer_size129k; proxy_connect_timeout600; proxy_read_timeout600; proxy_send_timeout600; proxy_buffer_size32k; proxy_buffers464k; proxy_busy_buffers_size64k; proxy_temp_file_write_size64k; }

其中,几个关键的主要参数如下所示。

  • proxy_connect_timeout600#nginx与后端开发服务器的网络连接超时(代理网络连接超时)
  • proxy_read_timeout600#连接成功后,后端开发服务器的响应速度(代理接受请求时超时)
  • proxy_send_timeout600#后端开发服务器数据信息返回时间(代理推送请求超时)
  • proxy_buffer_size32k#设置代理服务器(nginx)存储客户端头信息的缓冲区的大小。
  • proxy_buffers432k#proxy_buffers缓冲区,如果网页平均值在32k以下,就那样设置。
  • proxy_busy_buffers_size64k#长期负载下的缓存大小(proxy_buffers*2)
  • 代理_临时_文件_写入_大小16k#设置缓存文件夹的大小。如果超过此值,将从上游服务器传送
  • 看到这里,发现问题,这位读者的Nginx配备了以下线路。

    proxy_temp_file_write_size16k;

    而他服务器上的图基会在100K~5C到5C之间。

    问题出在proxy_temp_file_write_size。当服务器上的文档超过这个基本参数的大小时,Nginx会先把文档加载到临时目录中(默认设置是Nginxinstallation/proxy_temp目录)。默认情况下,Nginx以nobody身份启动,nobody是使用ls-al指令的proxy_temp目录的用户。很奇怪为什么没有。接下来查询proxy_temp的父目录,即Nginx安装目录。怪不得没人没管理权限,所以会有上面的问题。

    解决困难

    准确定位问题,然后解决就很简单了。有两种方法可以处理这个问题,如下所示。

  • 设置每个人都可以写proxy_temp目录,并重启Nginx来处理它。
  • 立即更改proxy_temp_file_write_size的值,使其超过图片和文档的大小,并重启Nginx。
  • 如果用第一种方法解决问题,比如我的proxy_temp目录是/usr/local/nginx/proxy_temp,用下面的说明设置/usr/local/nginx/proxy_temp目录,让大家都能写,解决问题。

    chmod-R777/usr/local/nginx/proxy_temp/

    如果应用第二种方法来解决问题,您可以立即更改nginx.conf文档,如下所示。

    location/file{ root/home/file; indexindex.htmlindex.htm; proxy_set_headerX-Real-IP$remote_addr; proxy_set_headerHost$host; proxy_passhttp://127.0.0.1:8080; client_max_body_size100m; client_body_buffer_size258k; proxy_connect_timeout1200; proxy_read_timeout1200; proxy_send_timeout6000; proxy_buffer_size32k; proxy_buffers464k; proxy_busy_buffers_size129k; proxy_temp_file_write_size十米; }

    自然是因为我帮这位读者改进了一些其他的装备物品。

    好了,今天到此为止吧!别忘了喜欢,给别人看,分享,让一大批人看到,一起学习,一起发展!!

    以上是nginx处理图像显示信息慢,下载不完整的详细内容。很多关于nginx处理图像显示信息慢,下载不完整的资料请关心其他相关文章!

    欢迎分享,转载请注明来源:内存溢出

    原文地址: http://outofmemory.cn/zz/774415.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存