问题1:情况是这这样:使用外网在中台上传图片文件,上传的文件100k以内没问题,上传超过了100k,没有返回(也就是没有成功)。项目运维问题总结_项目问题

但是使用内网上传,不管是多大都没问题,都能成功。这样对比下,无非外网比内网多走了一个nginx。

再次复现上面使用外网上传大图片不成功的情况,因为这个中台是通过一个nginx映射来使外网访问的。所以同时查看这个nginx报错的信息:项目运维问题总结_项目问题_02


从上面的报错很明显是权限的问题。


解决办法:1.ps -ef|grep nginx   (看使用的用户)2.tomcat 各程序的用户 3.就是/home/ths/nginx/目录下各目录的用户(这里有时会出现很多nobody用户)。这几个用户要一致,且都有执行权限。然后重启nginx服务。再用外网上传大文件,ok了。



问题2:使用filews程序自测,在浏览器上上传文件失败。没有返回,就是失败。(如下图)项目运维问题总结_项目问题_03

,查看filews程序的日志文件:项目运维问题总结_项目问题_04

显示FDFS文件写入错误。

开始排查问题:首先查看了filews和fdfs的服务和进程,端口都开启了。查看磁盘还有10%可使用,然后使用fastdfs命令上传文件测试是否能成功:# /usr/local/bin/fdfs_test /etc/fdfs/client.conf upload /tmp/1.txt

最后测试不成功,返回的是:no space left on  device (磁盘满了)

项目运维问题总结_项目问题_05


看到报错,然后就删除cms,hexinifs等tomcat程序中没用的日志。再查看下空间剩余量,这回是剩余17%空间,可能开始的10%剩余空间是虚假的。之后再命令测试,成功。filews浏览器上传文件测试成功。


问题3:有时候访问中台出现这种情况,项目运维问题总结_项目问题_06


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.重启