1.首先介绍一下nginx支持输出的日志内容:
$remote_addr 与$http_x_forwarded_for 用以记录客户端的ip地址;
$remote_user :用来记录客户端用户名称;
$time_local : 用来记录访问时间与时区;
$request : 用来记录请求的url与http协议;
$status : 用来记录请求状态;成功是200,
$body_bytes_s ent :记录发送给客户端文件主体内容大小;
$http_referer :用来记录从那个页面链接访问过来的;
$http_user_agent :记录客户端浏览器的相关信息;
2.nginx配置文件内可以定制多种日志输出格式,只要根据需要调用配置即可:
以下是我摘录的我们服务器上的一段配置,我定制了三种类型!
http
{
include mime.types;
default_type application/octet-stream;
#第一种默认输出日志输出;
log_format combined ' $remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
access_log off;
#第二种日志输出,去掉了客户端相关信息;
log_format access '$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log off;
#第三种日志输出,只输出一些基本的内容;
log_format aalog '$remote_addr - $remote_user [$time_local] $request '
'"$status" "$http_referer"';
access_log off;
3.日志输出胡格式和内容要根据生产系统的需要进行定制,只记录必要内容。
4.介绍一下日志调用,下面展示一组nginx虚拟主机调用日志配置;
server
{
listen 80;
server_name www.aa.com ;
access_log /data/nginxlog/aa.com.log aalog buffer=64k;
# /data/nginxlog/ #存放日志文件的位置,注意权限!
# aa.com.log #生成日志文件名称;
# aalog #调用定制日志输出格式,上面介绍了三种(combined、access、aalog)在这里定义上面配置的日志输出模板 ;
# buffer=64k #设置日志输出缓冲区,就是日志写满64k空间往磁盘写一次;
location / {
root /data/js;
index index.html index.htm;
}
}
以上就是就是nginx日志输出自定义配置方法的简要介绍,大家可以根据需要自由定制日志输出内容。
6.nginx日志切割,
有些nginx服务器上配置很多虚拟主机,日志切割是个问题,特针对这种情况整理了一个多域名日志切割脚本。
more nginxcutlog.sh
#!/bin/bash
##该脚本作用是切割nginx日志##
##把nginx日志路径赋值给nginx_log_path变量
##把nginx日志文件名赋值给log_filenames变量
##把nginx备份分区路径赋给nginx_oldlog_path变量
nginx_log_path="/data/nginxlog/"
nginx_oldlog_path="/date/backup/"
log_filenames=`/bin/ls $nginx_log_path`
##调试前一部分程序是否运行正常
#echo $log_filenames
#exit
for log_name in $log_filenames
do
#/bin/mv $nginx_log_path/$log_name $nginx_oldlog_path/`date +%F`-$log_name
/bin/mv /data/nginxlog/$log_name /date/backup/`date +%F`-$log_name
done
#nginx restart
#/usr/local/nginx/sbin/nginx -s reload
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
find /date/backup/ -name "*.log" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1