Nginx的日志文件配置与切割
与Nginx日志有关的命令有2条:
1.log_format用来设置日志的格式;
2.access_log用来指定日志文件的存放路径、格式和缓存大小;
一.用log_format指令设置日志格式
语法:
log_format name format [format ...]
解释:
name:定义格式名称
format:定义格式样式
log_format有一个默认、无须设置的combined日志格式,apache就是用的这个
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 /usr/local/webserver/logs/access.log access;
假设将Nginx服务器作为Web服务器,位于负载均衡设备、squid、Nginx发现代理之后,就不能获取到客户端的真实ip地址了。原因是因为经过了反向代理:由于在客户端和Web服务器之间增加了中间层,因此Web服务器无法直接拿到客户端的IP,通过¥remote_addr变量拿到的将是反向代理服务器的ip地址。但是,反向代理服务器在转发请求的HTTP头部信息中,可以增加X-Forwarde-For信息,用以记录原有客户端IP地址和原来客户端请求的服务器地址
解释:
$remote_addr和$http_x_frowarded_for用于记录IP地址;$1
$remote_user用于记录远程客户端用户名称;
$time_local用于记录访问时间与时区;
$request用于记录请求URL与HTTP协议;
$status用于记录状态;如:成功200、未找到404 $9
$body_bytes_sent用于记录发送给客户端的文件主体内容大小;
$http_referer用户记录是从哪个页面链接访问过来的;
$http_user_agent用于记录客户浏览器信息