说明:
操作系统:CentOS
站点1:bbs.jb51.net
站点2:sns.jb51.net
Nginx安装路径:/usr/local/nginx
Nginx配置文件路径:/usr/local/nginx/conf/nginx.conf
站点1配置文件路径:/usr/local/nginx/conf/vhost/bbs.jb51.net.conf
站点2配置文件路径:/usr/local/nginx/conf/vhost/sns.jb51.net.conf
目的:
1、对站点1和站点2的nginx访问日志按天保存,日志路径为:
站点1:/usr/local/nginx/logs/nginx_logs/bbs_logs
站点2:/usr/local/nginx/logs/nginx_logs/sns_logs
2、只保留30天以内的日志记录
具体操作:
1、创建日志存放路径
复制代码 代码如下:
mkdir -p /usr/local/nginx/logs/nginx_logs/bbs_logs
mkdir -p /usr/local/nginx/logs/nginx_logs/sns_logs
2、设置Nginx日志记录格式
编辑vi /usr/local/nginx/conf/nginx.conf
复制代码 代码如下:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
取消日志记录格式前面的注释,在最后添加一行,如下所示:
复制代码 代码如下:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'
'$http_host $upstream_status $upstream_addr $request_time $upstream_response_time'; #新添加的一行
:wq! #保存退出
3、设置虚拟主机配置文件
编辑vi /usr/local/nginx/conf/vhost/bbs.jb51.net.conf #,在bbs.jb51.net;这一行下面添加
复制代码 代码如下:
access_log logs/bbs_access.log main; #注意这里的main要和上一步中的main一致
:wq! #保存退出
编辑vi /usr/local/nginx/conf/vhost/sns.jb51.net.conf ,在sns.jb51.net;这一行下面添加
复制代码 代码如下:
access_log logs/sns_access.log main; #注意这里的main要和上一步中的main一致
复制代码 代码如下:
:wq! #保存退出
service nginx reload #重新加载nginx配置文件
4、创建Nginx日志切割脚本
编辑vi /home/crontab/cut_nginx_log.sh
复制代码 代码如下:
#!/bin/sh
logs_path="/usr/local/nginx/logs/"
DAYS=30
mv ${logs_path}bbs_access.log ${logs_path}nginx_logs/bbs_logs/bbs_access_$(date -d "yesterday" +"%Y%m%d").log
mv ${logs_path}sns_access.log ${logs_path}nginx_logs/sns_logs/sns_access_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
find ${logs_path}nginx_logs/bbs_logs/ -name "bbs_access_*" -type f -mtime +$DAYS -exec rm {} /;
find ${logs_path}nginx_logs/sns_logs/ -name "sns_access_*" -type f -mtime +$DAYS -exec rm {} /;
复制代码 代码如下:
:wq! #保存退出
chmod +x /home/crontab/cut_nginx_log.sh #添加脚本执行权限
新闻热点
疑难解答