Chinaunix首页 | 论坛 | 博客
  • 博客访问: 308393
  • 博文数量: 63
  • 博客积分: 1997
  • 博客等级: 上尉
  • 技术积分: 690
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-29 11:17
文章分类

全部博文(63)

文章存档

2010年(26)

2009年(37)

我的朋友

分类: 系统运维

2009-11-19 12:08:03

日志模块
ngx_http_log_module
实例 1 压缩日志

log_format  gzip  '$remote_addr - $remote_user [$time_local]  '
: '"$request" $status $bytes_sent '
: '"$http_referer" "$http_user_agent" "$gzip_ratio"';
access_log  /spool/logs/nginx-access.log  gzip  buffer=32k;
这个是对日志进行压缩,但是首相要开启gzip的压缩功能。
实例 2 普通日志
server {
    root        /spool/vhost/data/$host;
    access_log  /spool/vhost/logs/$host;
针对单个站点进行的日志配置。
实例 3 combined日志
log_format  combined  '$remote_addr - $remote_user [$time_local] '
                          '"$request" $status $body_bytes_sent '
                          '"$http_referer" "$http_user_agent"';
可以向apache那样产生日志。
实例 4 不知道
open_log_file_cache      max=1000  inactive=20s  valid=1m  min_uses=2;
从字面理解好性可以打开缓存日志,但是官方是俄文的,实在看不懂,这个日志格式可以研究一下。
虽然nginx非常好,但是Nginx目前就还不支持通过pipe输出log,所以就不支持利用cronolog来按时间进行日志截断回滚。
如果要截断日志,每天来分析,就要通过第三方的方法来做。
下面提供一种替代解决方案,来达到日志回滚的效果:
#!/bin/sh
log_dir=”/backup/log/nginx/”
yesterday=`date +%Y%m%d`
lastday =`date +%Y%m%d -d ‘-1 month’`
/bin/rm ${log_dir}/access.log.${lastday}
/bin/rm ${log_dir}/error.log.${lastday}
/bin/mv ${log_dir}/access.log ${log_dir}/access.log.${yesterday}
/bin/mv ${log_dir}/error.log ${log_dir}/error.log.${yesterday}
kill -USR1 `cat /usr/local/nginx/nginx.pid`
/bin/gzip ${log_dir}/access.log.${yesterday} &
/bin/gzip ${log_dir}/error.log.${yesterday} &
然后将该脚本保存在/usr/local/bin/cron.daily目录里,或者在crontab里每日0点时运行。
我规定了日志格式为access.log.yyyymmdd,如果日志文件够大,可以采用压缩日志gzip.

#这里使用了通信

说到通信,我再介绍一下linux和nginx的通信机制.
Nginx 支持下表中的信号:
信号名  作用描述 
TERM, INT  快速关闭程序,中止当前正在处理的请求 
QUIT  处理完当前请求后,关闭程序 
HUP  重新加载配置,并开启新的工作进程,关闭就的进程,此操作不会中断请求 
USR1  重新打开日志文件,用于切换日志,例如每天生成一个新的日志文件 
USR2  平滑升级可执行程序 
WINCH  从容关闭工作进程 
有两种方式来通过这些信号去控制 Nginx,第一是通过 logs 目录下的 nginx.pid 查看当前运行的 Nginx 的进程 ID,通过 kill - XXX 来控制 Nginx,其中 XXX 就是上表中列出的信号名。如果您的系统中只有一个 Nginx 进程,那您也可以通过 killall 命令来完成,例如运行 killall - s HUP nginx 来让 Nginx 重新加载配置。
阅读(2369) | 评论(0) | 转发(0) |
0

上一篇:ruby学习

下一篇:mysql源代码安装

给主人留下些什么吧!~~