网站用户登录不进去了!

某天早上登录用户中心,发现页面卡在了登录环节,经排查判断应该是后端没法写入session了。

ssh登录服务器执行命令:

df -h

输出信息发现其中一个磁盘写满了。于是依次执行以下命令:

cd /
du -h --max-depth=1|grep G|sort -n
# 找到最大的那个目录后进入该目录,再运行:
du -h --max-depth=1|grep G|-n
# 如果没有结果,可以运行:
du -h --max-depth=1|grep M|sort -n
# 找出来以后看是否有用的文件
# 循环使用上面命令进入最终目录/var/log/nginx

# 执行删除认为无用的文件:
rm -rf access.log.1
rm -rf error_log.1
# 或者
echo "" > access.log.1

查看相关页面文件运行报错信息,确定是保存session文件的磁盘无法写入。

 A PHP Error was encountered
Severity: Warning
Message: Unknown: write failed: No space left on device (28)
Filename: Unknown
Line Number: 0
Backtrace:
A PHP Error was encountered
Severity: Warning
Message: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/sessions)
Filename: Unknown
Line Number: 0
Backtrace:

如果你想保留近期日志,可以设置定时脚本,对日志进行定时请清空。(建议选取用户访问少的时间进行清理)。

# 例如:每日凌晨1点清空日志
* 1 * * *  echo "" > /var/log/nginx/access.log.1

如果你想关闭日志记录(建议只关闭access.log日志,error.log最好开启,以便服务器出问题是及时通过错误日志查找原因)。例如:

# 可以是针对某个站点的设置:
# access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
# 也可以在nginx.conf配置文件中进行全局关闭:
access_log off;
# 不建议关闭错误日志 error_log off;

记得重启Nginx,以Ubuntu系统为例:

service nginx reload

已发布

分类

来自

标签:

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注