标签:项目问题
问题1:情况是这这样:使用外网在中台上传图片文件,上传的文件100k以内没问题,上传超过了100k,没有返回(也就是没有成功)。
但是使用内网上传,不管是多大都没问题,都能成功。这样对比下,无非外网比内网多走了一个nginx。
再次复现上面使用外网上传大图片不成功的情况,因为这个中台是通过一个nginx映射来使外网访问的。所以同时查看这个nginx报错的信息:
从上面的报错很明显是权限的问题。
解决办法:1.ps -ef|grep nginx (看使用的用户)2.tomcat 各程序的用户 3.就是/home/ths/nginx/目录下各目录的用户(这里有时会出现很多nobody用户)。这几个用户要一致,且都有执行权限。然后重启nginx服务。再用外网上传大文件,ok了。
问题2:使用filews程序自测,在浏览器上上传文件失败。没有返回,就是失败。(如下图)
显示FDFS文件写入错误。
开始排查问题:首先查看了filews和fdfs的服务和进程,端口都开启了。查看磁盘还有10%可使用,然后使用fastdfs命令上传文件测试是否能成功:# /usr/local/bin/fdfs_test /etc/fdfs/client.conf upload /tmp/1.txt
最后测试不成功,返回的是:no space left on device (磁盘满了)
看到报错,然后就删除cms,hexinifs等tomcat程序中没用的日志。再查看下空间剩余量,这回是剩余17%空间,可能开始的10%剩余空间是虚假的。之后再命令测试,成功。filews浏览器上传文件测试成功。
Nginx做反向代理,后端是Tomcat,通过浏览器访问时部分文件加载失败,提示:
1 | ERR_CONTENT_LENGTH_MISMATCH |
经检查原来是Nginx的工作进程对大文件做了缓存,这个缓存在 %nginx%/proxy_temp 目录下,主进程在读取缓存的时候由于权限问题而无法访问,从而导致以上异常。
1、查看Nginx运行进程,确认运行用户为ths;
1 | ps –ef| grep nginx |
2、检查proxy_temp目录所属用户,设置用户为ths。和tomcat用户一致
3、停止nginx并将nginx目录权限设置为“ths
4.重启
本文出自 “12336621” 博客,请务必保留此出处http://12346621.blog.51cto.com/12336621/1951852
标签:项目问题
原文地址:http://12346621.blog.51cto.com/12336621/1951852