phperz 发布于 2014-06-22 11:07:06 | 550 次阅读 | 评论: 0 | 来源: phperz

这里有新鲜出炉的Nginx开发从入门到精通,程序狗速度看过来!

Nginx WEB服务器

Nginx 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。


Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪、网易、 腾讯等。

但不足的是也存在缺点,比如其产生的访问日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将 导致日志文件容量非常大,不便于管理。当然了,我们也不希望看到这么庞大的一个访问日志文件,那需要手动对这个文件进行切割。

Nginx不能像Apache那样有日期时间变量供我们在配置时就写好,让web server在写日志就会根据我们规定好的文件格式来生成日志文件.

Nginx要想实现一天一个日志文件必须借助Linux下强大的shell脚本来实现.

其原理是,当执行这个shell脚本时,脚本生成以日期为格式文件名,并通过mv命令对当前的日志进行移动命名.然后再向Nginx 的进程发送 USR1 信号以重新打开日志文件,如果不发送的话,Nginx 会继续将日志信息写入 access_[yyyy-MM-dd].log 的那个文件中,这显然是不正确的

切割Nginx日志文件的Shell脚本如下:

#!/bin/bash
## 零点执行该脚本
## Nginx 日志文件所在的目录
LOGS_PATH=/usr/local/nginx/logs
## 获取昨天的 yyyy-MM-dd
YESTERDAY=$(date -d ”yesterday” +%Y-%m-%d)
## 移动文件
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
## 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件
kill -USR1 $(cat /usr/local/nginx/nginx.pid)

 

上面加红部分需要你自己根据你的情况修改.然后复制保存为cut_logs.sh

下一步把cut_logs.sh加到计划任务

执行crontab -e打开计划任务

写入如下命令

#切合nginx logs
0 0 * * * /bin/bash /data/sh/cut_log.sh

红色部分改成你刚才保存的cut_log.sh文件路经

 

本文为phperz原创内容,转载请注明出处



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务