背景
公司IOS反馈说,有一张图片的网址请求后,有时请求失败,有时请求成功但是只显示一部分。
检查过程
- 前端检查图片的request,发现图片加载到一半时会失败。
- ping了一下图片的url,发现是存放在公司一台已经弃用的服务器上。
- 检查服务器的各项参数,发现服务器的硬盘空间爆满。
- 猜测与空间不足有关,但是由于该服务器没有任何交接文档,因此不知道密码,只能重置密码并重启服务器【阿里云服务器重置密码需要重启】
问题1,无法远程ssh登录服务器
解决:尝试重启ssh服务,修改iptables配置,重启iptables服务等操作后,发现ssh端口并不是默认的22端口,而是被修改过的,因此修改下登录的端口解决问题。
问题2,服务器空间不足
解决:发现空间主要被日志和之前存储的图片占用,因此使用tar -zvcf命令归档日志后,删除日志释放空间。
问题3,网站无法访问
解决:whereis nginx查询是否存在nginx服务,发现有,于是启动nginx即可。
问题4,访问图片报502
解决:
- 查询nginx的错误日志,发现有报错 *1477 no live upstreams while connecting to upstream,说明没有后端服务在处理请求。
- 一开始以为是没有开启php-fpm服务,whereis php-fpm发现没有相关服务,因此排除。
- 猜测是用nginx+web.py的方式搭建服务器,然而用输入命令spawn-fcgi,没有该命令,因此排除。
- 在nginx中发现反向代理 proxy_pass http://localhost:8080; 8080端口一般是node.js或java服务器用的,在命令中输入java,发现服务器安装了java,因此很大可能性是通过nginx转发到tomcat服务器。
- whereis tomcat 没有发现有tomcat的文件或目录,但是在查询资料的过程中,了解到tomcat的路径一般为/usr/local/tomcat,因此尝试查找,发现在 /usr/local/ 目录下有 tomcat8080_XXXX/ 的文件夹。
- 启动tomcat:./startup.sh 。
- 问题解决。
总结
- whereis命令只能用于程序名的搜索,和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。 但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。 【可能本服务器的tomcat的安装方式没有更新到该数据库文件,也有可能是其他原因,待查】
- 解决了空间不足问题后,图片就能正常显示了,具体的原因待查。
- 服务自启动和工作交接的重要性。
其他
- 添加nginx和tomcat到服务器自启动项
- vi /etc/rc.local
- /etc/init.d/nginx start
/usr/local/tomcat8080_child/bin/startup.sh