通过访问日志,你可以得到用户地域来源、跳转来源、使用终端、某个URL访问量等相关信息;通过错误日志,你可以得到系统某个服务或server的性能瓶颈等。因此,将日志好好利用,你可以得到很多有价值的信息。

打开nginx.conf配置文件:vi /usr/local/nginx/conf/nginx.conf
日志部分内容:
#access_log logs/access.log main;
日志生成的到Nginx根目录logs/access.log文件,默认使用“main”日志格式,也可以自定义格式。





默认“main”日志格式: 参数明细表:

$remote_addr 客户端的ip地址(代理服务器,显示代理服务ip)
$remote_user 用于记录远程客户端的用户名称(一般为“-”)
$time_local 用于记录访问时间和时区
$request 用于记录请求的url以及请求方法
$status 响应状态码,例如:200成功、404页面找不到等。
$body_bytes_sent 给客户端发送的文件主体内容字节数
$http_user_agent 用户所使用的代理(一般为浏览器)
$http_x_forwarded_for 可以记录客户端IP,通过代理服务器来记录客户端的ip地址
$http_referer 可以记录用户是从哪个链接访问过来的








日志配置和及切割


原理 使用定时器 定时移动日志文件 并重命名

/etc/init.d/rsyslog start #系统日志,如不开启,看不到定时任务日志
/etc/rc.d/init.d/crond start #定时任务开启
#/etc/rc.d/init.d/crond stop #定时任务停止

编写sh:

  1. #!/bin/bash
  2. #设置日志文件存放目录
  3. LOG_HOME="/usr/local/nginx/logs/"
  4. #备分文件名称
  5. LOG_PATH_BAK="$(date -d yesterday +%Y%m%d%H%M)"
  6. #重命名日志文件
  7. mv ${LOG_HOME}/access.log${LOG_HOME}/access.${LOG_PATH_BAK}.log
  8. mv ${LOG_HOME}/error.log${LOG_HOME}/error.${LOG_PATH_BAK}.log
  9. #向nginx主进程发信号重新打开日志
  10. kill -USR1 `cat ${LOG_HOME}/nginx.pid`

配置cron:

  1. crontab -u root -e
  2. #输入
  3. */1 * * * * /usr/local/nginx/sbin/logcut.sh
  4. #查看定时任务
  5. crontab -l