Notes: 通过logrotate进行nginx的日志轮转

看着线上项目的access.log日益增大,进行日志分析相当不便,迫切需要进行日志轮转。

网上找到了使用logrotate进行nginx日志轮转的方案,由于不需要安装任何软件,配置起来也方便,因此考虑使用这个作为轮转方案。

先copy一个配置文件:

cp /etc/logrotate.d/httpd /etc/logrotate.d/nginx

进行该文件的配置:

/usr/local/nginx/logs/*.log {
    daily
    dateext
    rotate 99
    copytruncate
    nocompress
    missingok
    notifempty
    sharedscripts
    postrotate
         /bin/kill -HUP `/bin/cat /usr/local/nginx/logs/nginx.pid`
    endscript
}

配置说明:

daily:按天来rotate
dateext:日志rotate后再后面加日期,例如:access.log轮转后会变为access.log-20110508
rotate:保留最近的几个文件
copytruncate:是指在进行轮转时会先把日志内容复制到老文件后才清除日志文件内容,可以保证日志记录的连续性。
nocompress:不压缩
missingok:当日志为空时不进行轮转
postrotate和endscript可以插入命令和脚本 执行某些操作,这里我们是平滑重启nginx,否则轮转后access.log不会再写入。

测试配置是否生效:

/usr/sbin/logrotate -f /etc/logrotate.conf

看看/usr/local/nginx/logs/下面是否有类似access.log-20110508的log生成

nginx中location的语法

Location语法:location [=|~|~*|^~] /uri/ { … }
注:

1、=   严格匹配这个查询。如果找到,停止搜索。

2、^~ 匹配路径的前缀,如果找到,停止搜索。

3、~   为区分大小写匹配。

4、~* 为不区分大小写匹配。

5、!~和!~*分别为区分大小写不匹配及不区分大小写不匹配。

[10/21 周主题] – 安装和配置Nginx

马上Nginx将会应用到公司的第一个实战项目上,为了方便开发和运维人员安装和配置Nginx,整理了下面的内容。

我们的服务器全部采用CentOS,因此下面的配置也是基于CentOS来配置的。

安装流程:

cd /opt/

yum install gcc openssl-devel pcre-devel zlib-devel

wget http://nginx.org/download/nginx-0.8.38.tar.gz

wget http://github.com/gnosek/nginx-upstream-fair/tarball/master

tar –zxvf nginx-0.8.38.tar.gz

tar –zxvf gnosek-nginx-upstream-fair-2131c73.tar.gz

cd nginx-0.8.38

./configure
--with-http_stub_status_module
--add-module=/opt/gnosek-nginx-upstream-fair-2131c73

make & make install

正常一步步走下面是不会出问题的,前提确保你的服务器网络可用。

Nginx启动脚本:

继续阅读[10/21 周主题] – 安装和配置Nginx

[10/13周主题] – Apache,Nginx,Tomcat集群

本周主题:Apache Nginx Tomcat集群

最近这段时间一个项目处于最后的调试,上线阶段,服务器和程序的优化方面成为最近的重点,以确保项目上线后可以达到预定的目标。

最终上线的配置是Apache+Tomcat集群,Nginx仅仅参与了一下测试,算是体验下,以后估计会在前端上多多使用。

Apache前端使用的是反向代理配置方式,Session Sticky,Tomcat配置sessionDB。

Apache基本上采用默认配置,由于使用prefork模式,因此调整了prefork下的一些参数配置。

Tomcat调整了连接数,Apache和Tomcat在同台机子上,调整了Linux系统的ulimit。

Nginx做前端时,没有配置session同步,压力测试的表现方面,没发现Apache和Nginx有太大差异,不过有一次Apache前端被压挂了,无法关闭httpd。

另外这次将GlashFish和Tomcat做了一个简单的对比,发现GlashFish+自身连接池测试效果要好于Tomcat+DBCP连接池,表现方面一个是内存使用上,另一个是数据库连接数和响应上。

Nginx试用

最近Nginx比较火,也比较好奇,于是今天就试着在自己的虚拟机上装了玩玩。

教程基本上是按照网上的教程一步步走来的。

1、下载Nginx 0.7.65

2、编译,这块稍微花了点时间,主要是缺少依赖的库,一个一个去下载安装,建议初学使用可以看这里:http://wiki.nginx.org/NginxInstallOptions

我是用的是CentOS,执行下面的命令:

yum install gcc openssl-devel pcre-devel zlib-devel

3、安装完,运行就可以了!注意:apache默认也是80端口,别重了,或者暂时把Apache关掉。

4、配置 stub_status , 配置之前确定在编译时加载 http_stub_status_module, 否则你就要重新编译了!

5、配置tomcat集群,现学现用,由于我们目前大部分服务器使用的是tomcat集群。

下载 gnosek-nginx-upstream-fair-2131c73.tar

重新编译,别忘记带上 –add-module=/home/mikespook/gnosek-nginx-upstream-fair-2131c73

简单的一个Nginx+Tomcat集群就运行起来了!网上配置教程一大堆,我也就自己实践实践,如果不明白可以Google下或者百度下,不行搜狗下,可怜的Google,不,应该是可怜的中国政府!