access.log日志过大也会导致web性能下降

本文介绍了解决Nginx access.log文件过大的两种方法:一是直接删除或修改配置忽略日志;二是通过脚本自动切割日志并定期清理旧日志。

你知道吗?nginx默认的access.log日志文件过大,也会导致网页打开速度慢。要解决这个问题可以看下面的文章

方法一:直接删除access.log日志。然后重启下就会生成新的access日志。

如果你不打算要这个日志也可以修改nginx配置,将日志丢入/dev/null 中。
找到access_log /home/wwwlogs/access.log access;
改成access_log /dev/null;

其实在/usr/local/nginx/logs下也有个access.log,这个也删了吧。。。

方法二:日志access.log切割法。

如果是lnmp0.5/0.6/0.7/0.8/0.9通用,用户可以仅修改log_files_name后面的要切割的日志文件名就直接使用。

这个军哥写的一个脚本:下载地址:http://soft.vpser.net/lnmp/ext/cut_nginx_logs.sh
脚本主要参数:

#设置nginx日志文件目录路径
log_files_path="/home/wwwlogs/"
#日志文件将会存放到/home/wwwlogs/年/月/日志文件名_年月日.log
log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
#设置要切割的日志的名字,如果日志目录下面的日志文件名为vpser.net.log,则填写vpser.net,每个日志名用空格分隔
log_files_name=(access vpser.net licess)
#设置nginx文件的位置
nginx_sbin="/usr/local/nginx/sbin/nginx"
#设置日志保存的时间,天
save_days=30

如果是非lnmp一键安装包用户可以通过修改上述参数适应你的nginx环境。

将nginx日志切割脚本下载到/root/下面。再添加自动执行,执行:crontab -e

输入:00 00 * * * /bin/bash /root/cut_nginx_logs.sh 每天0点整开始切割脚本。

#!/bin/bash
#function:cut nginx log files for lnmp v0.5 and v0.6
#author: http://lnmp.org

#set the path to nginx log files
log_files_path="/home/wwwlogs/"
log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
#set nginx log files you want to cut
log_files_name=(access vpser licess)
#set the path to nginx.
nginx_sbin="/usr/local/nginx/sbin/nginx"
#Set how long you want to save
save_days=30

############################################
#Please do not modify the following script #
############################################
mkdir -p $log_files_dir

log_files_num=${#log_files_name[@]}

#cut nginx log files
for((i=0;i<$log_files_num;i++));do
mv ${log_files_path}${log_files_name[i]}.log ${log_files_dir}/${log_files_name[i]}_$(date -d "yesterday" +"%Y%m%d").log
done

#delete 30 days ago nginx log files
find $log_files_path -mtime +$save_days -exec rm -rf {} \; 

$nginx_sbin -s reload

转载自:http://www.zxsdw.com/index.php/archives/866/

 

 

 

 

 

 

 

 

access.log是一种常见的Web服务器日志文件,通常用于记录客户端对Web服务器的访问请求。这类日志文件广泛应用于Apache、Nginx等主流Web服务器中,以便管理员或开发人员能够追踪和分析服务器的访问情况。每条日志记录一般包括客户端的IP地址、访问时间、请求方法、请求的资源路径、HTTP状态码、用户代理信息等字段,用于详细描述一次HTTP请求的过程[^4]。 ### access.log的主要用途 1. **访问监控**:通过分析access.log,可以了解网站的访问量、访问高峰期以及用户行为模式。 2. **安全审计**:日志文件可以帮助识别潜在的安全威胁,例如异常的访问模式或尝试利用漏洞的攻击行为。 3. **性能优化**:通过查看日志中的响应时间、请求小等信息,可以优化服务器性能和资源配置。 4. **故障排查**:当服务器出现故障时,access.log可以提供关键线索,帮助快速定位问题。 ### access.log文件的常见格式 access.log的格式通常由服务器配置定义,常见的日志格式包括: - **Common Log Format (CLF)**:标准的日志格式,包含客户端IP、时间戳、请求方法、请求的URL、HTTP状态码、响应小等。 - **Combined Log Format**:在CLF基础上增加了用户代理(User-Agent)和来源页面(Referer)信息。 示例日志条目: ``` 1.202.114.41 - - [09/Nov/2020:11:08:23 +0800] "GET / HTTP/1.1" 404 146 "https://www.baidu.com/link?url=jBUa" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0" ``` ### access.log的管理与优化 由于access.log会随着访问量的增加而迅速增长,因此需要采取一些措施来管理和优化日志文件: - **日志切割**:定期将日志文件按时间(如每天)分割成多个小文件,便于管理和分析。例如,Apache可以通过`rotatelogs`工具实现日志切割[^2],而Nginx可以通过脚本结合`mv`命令和发送`USR1`信号重新打开日志文件来实现[^3]。 - **日志压缩**:将旧的日志文件进行压缩,以节省存储空间。 - **日志分析工具**:使用日志分析工具(如AWStats、GoAccess)对access.log进行可视化分析,生成访问统计报告。 ### 示例:如何查找特定请求的日志 如果需要查找某个特定请求(例如访问`index.action`)的日志条目,可以使用`grep`命令进行过滤: ```bash grep "index.action" localhost_access_log.2015-03-23.txt ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值