今天应该说很开心的一天才对,周五了嘛,脑壳里都是想想周末2天怎么玩耍;但是意外来了,网站突然打不开了,服务器上的两个网站打开都是出现"无法访问网站"。心急如焚,问了服务器商,帮昂检测了一番,结果:说服务器正常运行啊,没问题的,你自己网站出了问题哦,不在我们的维护范围内,请自行解决,我当时真的气炸了。没办法,只能自己慢慢折腾。冷静冷静冷静。。。。分析。。。。
事情原由:
因为想搞些数据,需要在宝塔里配置数据库的查看信息功能,所以重启了服务器,当时没太注意,应该只要重启某个站的mysql就可以了,结果我直接一键启动整个服务器,然后上面提到的事情就发生了。
查找原因&解决方案:
第一步
先检查了下nginx的配置,发现是ok的。并且发现程序文件都在。
并且我也查看了进程,宝塔面板等一些端口都在。
进程都在呢,没问题哟。
第二步
经过第一步的检测后,我感觉是nginx服务未启动,如果在宝塔面板里重启nginx,然后问题又来了,出现:
nginx: [emerg] bind() to 0.0.0.0:9176 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:9176 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:9176 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:9176 failed (98: Address already in use)
发现xxxx端口被占用了,nginx重新启动不了,于是就想着去掉这个进程,再重启。然后就进行了一番操作:
打开SSH一次输入命令:
查看所有端口的列表
netstat -ltunp
找到被占用的端口,然后执行:
kill -9 要禁止的端口号
然后我们再执行,
ps -ef|grep python
发现python进程一直都在,每次杀掉一个,自动生成一个:
经过高人指点,直接先杀掉前面两个"986"和"1852"再删除下面的,就可以搞定了哦。
然后我们再回头去执行
netstat -ltunp
发现我们要删掉的端口,已经没有了,于是我们再去重启nginx,执行命令:
service nginx restart
Wow!!!nginx重启成功,开心。。。再去打开网站,还是打不开,尴尬的一B。
第三步
不要灰心,我们继续分析。在内网打开网址,提示301 。
我们去宝塔里看看吧,然而。。。发现刚才删掉的端口是宝塔的,导致宝塔打不开了,这真是对自己无语了,接下来又要恢复宝塔,并且还要改宝塔的端口,因为之前的端口已经被nginx占用了。继续一波恢复宝塔操作。
注意:这里不建议大家出重新装宝塔,网上有人建议。因为一旦重装,可能你的东西都没了,那真的完蛋了,切记切记!!!
1)登陆Winscp,打开 www目录,找到server/panel/data/port.pl 文件,里面有一个数字,存储的就是你的端口号。
2)输入命令:netstat -ntpl,查看监听的端口有哪些
3)输入重置宝塔端口命令
echo '8888' > /www/server/panel/data/port.pl
4)然后再输入重启宝塔面板命令:
/etc/init.d/bt restart
结果如下图:
然后我们再用IP加上新的端口去访问宝塔,发现OK了。于是再去宝塔里设置了一番,网站还是一样的结果,打不开。。。。。感觉快奔溃了。
第四步
感觉自己快没哟耐心了,于是去请求大神指点,要出绝招了,我们进入自己的服务器,访问你的网址,然后外网ping你的端口发现不通,此时此刻,好像意识到了问题所在,防火墙??????
于是硬着头皮再去找服务器商PK,让他们检测下我们几个网站的端口防火墙有没有开启,结果TMD压根没打开。WCNMD,结果正常了。
折腾大半天,结果就是防火墙的问题,还是服务器商的问题,真NM想大骂他们一顿,想想还是算了吧。
总结
如果不得已,千万别去重启整个服务器。如果想要重启,请务必让服务器商去帮你重启【适合新手】,这样避免自己去背锅。
如果你自己重启了,发现文件等其他都在,我们应该第一时间去考虑到防火墙是否开启问题【经过一番折腾后,个人的一番感悟】。
最后提下要提供的端口,一般主要包括:nginx解析端口和SSL解析端口【需要把这些告诉服务器商,去解开防火墙的设定】
希望此文章能够帮助到大家,脱坑。如转载,请务必写版权地址,如果您有更好的方法都可以加群讨论和咨询哦~~~