nginx 日志使用
************************
日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
日志输出
172.17.0.1 - - [28/Apr/2020:02:10:24 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"
$remote_addr:客户端的ip地址
$remote_user:客户端用户名,如果没有则为空
$time_local:访问时间与时区,如:28/Apr/2020:02:10:24 +0000
$request:请求的uri与http协议,如:GET / HTTP/1.1
$status:请求返回的状态吗,如:200
$body_bytes_sent:返回的数据大小
$http_referer:转发的uri地址,没有则为空,如:-
$http_user_agent:客户端浏览器信息,如:curl/7.29.0
$http_x_forwarded_for:请求经过的客户端ip地址列表,没有则为空,如:-
************************
自定义日志格式
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '[客户端地址:] $remote_addr [time:] $time_local [客户端浏览器信息:] $http_user_agent';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
测试输出:curl localhost:8080
[客户端地址:] 172.17.0.1 [time:] 28/Apr/2020:07:22:00 +0000 [客户端浏览器信息:] curl/7.29.0
************************
日志切割
执行脚本:autolog.sh
log_path="/var/log/nginx" #设置日志路径
mv $log_path/access.log $log_path/'date -d yesterday +"%Y%m%d"'.log
/etc/init.d/nginx -s reopen #重新生成日志文件
授权autolog.sh可执行:chmod 777 autolog.sh
定时执行
0 0 * * * authlog.sh . >/dev/null 2>&1
说明:参数依次为分、时、日、月、周、执行脚本,>/dev/null 2>&1表示将定时任务产生的日志不输出