记一次服务器断电nginx重启的坑
nginx重启遇到的坑
周一一到公司,前端同事就给我说,测试服务器是不是挂了,什么数据都没有。我突然想到周六大厦断电了大约三分钟,于是就想到应该是服务器上部署的服务都没有启动。
逐一开启服务
大致定位到了问题,便逐一开启各种服务。Docker、Redis、MongoDB、ES、rabbitmq。至此APP已经能正常访问数据,但是唯独前端h5页面打都打不开。
遇到了nginx的坑
由于h5静态资源通过nginx做了转发,猜想是nginx还未启动,但是nginx却启动不了,用命令查看错误如下:
看来是文件访问权限的问题,但是看了nginx也是root用户,所以问题并不是简单的设置文件访问权限能够解决的。
那到底是什么问题呢,百思不得骑姐,于是只好先将日志位置还原成默认目录:/var/log/nginx/下,至此nginx重启成功。
但是,依然无法访问h5页面,好坑。查看日志,又是权限问题,诸如 is forbidden (13: Permission denied)。
但权限真的没有问题啊。太坑了吧。
问题总有解决的办法
于是只好在网上搜,但是网上基本都是说修改文件权限啊,知道发现了一个帖子,瞬间觉得看见了光明。原贴如下:
https://blog.90.vc/archives/25
博主指出,是selinux的问题。按照博主步骤,在此不赘述了,至此h5静态资源可以访问了。
但是接口数据依然无法请求,问题接踵而至。
看了控制台接口请求,直接404。
nginx报错如下:
connect() to ** failed (13: Permission denied) while connecting to upstream
妈呀,饶了我吧。
再一通查,原来还是selinux问题,这个玩意真的坑。
解决方式如下:
1.设置相关属性
setsebool httpd_can_network_connect=1
2.永久关闭selinux。
第一种方式设置完之后,什么都正常了。
第二种没事,怕出什么问题,因为要重启服务器。