欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Nginx之——web网站图片显示过慢 超大附件不完全下载的解决方法

程序员文章站 2022-05-19 10:36:37
...
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/50549921

问题:

打开网站后台管理系统,发现图片显示非常慢,查看nginx前端代理上查出:
[error] 28423#0: *5 connect() failed (111: Connection refused) while connecting to upstream
打开VPN,直接用后台服务器的IP地址去访问,发现速度相当快,于是怀疑是代理服务器的配置问题。

当下载大的附件,或是页面中有大图片时,就会下载中断或是图版无法显示 也许你要说我用的nginx缺省的设置没碰到这问题,那是因为你的网站没大文件。

复制代码 代码如下:

location /mypm {
	 root /home/mypmcc/mypm20100914;
	 index  index.jhtml index.html login_page.jhtml;
	 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       6000;
	 proxy_buffer_size        32k;
	 proxy_buffers4 64k;
	 proxy_busy_buffers_size 128k;
	 proxy_temp_file_write_size 512k;
}
nginx 反向代理参数说明
proxy_connect_timeout 600; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_read_timeout 600; #连接成功后,后端服务器响应时间(代理接收超时) Linux学习,http:// linux.it.net.cn
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 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传

proxy_temp_file_write_size 64k;我的图片是200多k的,哎!
问题就出在proxy_temp_file_write_size上,当你的文件超过该参数设置的大小时,nginx会先将文件写入临时目录(缺省为nginx安装目下/proxy_temp目录),或直接更改proxy_temp_file_write_size的值。
缺省nginx是以nobody身份启动的,用ls -al 命令查看proxy_temp目录 nobody是proxy_temp目录的所有者,怪了那为什么没权限呢,接下来我查看proxy_temp的父目录既nginx安装目录。发现 nobody竞然没权限,怪不得会出上面的问题。IT网,http://www.it.net.cn
然后设置任何人都可以写 proxy_temp目录,重启 nginx 即可解决。

比如我的proxy_temp目录是/usr/local/nginx/proxy_temp,用命令chmod -R 777 /usr/local/nginx/proxy_temp/ 设置为任何人都可以写,问题解决。

以上就介绍了Nginx之——web网站图片显示过慢 超大附件不完全下载的解决方法,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。