作为程序员一定要保持良好的睡眠,才能好编程

nginx访问日志文件过大导致服务器性能降低解决方法

发布时间:2019-03-21

nginx服务器卡的要死

df -h 一看 分区空间全部占满了.

访问日志太大了,增涨的速度相当吓人.

 

处理方案:

修改nginx的配置文件,access_log,访问日志只记录php file文件类型的

1、对于html,和图片,css,js等文件的访问都不记录.

2、加一个crontab任务,定期清空日志内容。

具体实施过程:

1. 查找nginx的安装路径 默认是/usr/local/nginx/

目录下会有 conf logs sbin 等目录

#cd /usr/local/nginx

#cd conf/vhost //此目录下存放着各站点的配置文件

#vim linuxso.com.conf

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${
    expires 30d;access_log off; //添加这一行 将不记录这些文件类型
}

location ~ .*\.(js|css)?${
    expires 12h;access_log off; //也不让记录
}
 
#//这部分原来是没有的,我们只记录访问php文件就可以了。 
location ~ .*\.(html|htm)${
    access_log off;
}


然后看最下面一行 access_log /var/log/linuxso.log /var/www/linuxso; 
记录下来 /var/log/linuxso.log 日志存放的路径 

后面写定期清空日志脚本时要用。

重新启动nginx

/usr/local/nginx/sbin/nginx -s reload 可以重启nginx


这样修改完,日志的增长速度会明显慢下来,不过仍然是不断变大,也终有把空间占满的一天。




2.写一个简单的脚本定期清空日志。

# vim /root/cleanlog.sh
写入
#/bin/bash
/bin/rm -rf /var/log/linuxso.log
/usr/local/nginx/sbin/nginx -s reload
#crontab -e

0 0  * * * /root/cleanlog.sh //我这是每天夜里12点清空一次,根据你的情况设置清空的频率。