Nginx + Awstats + Fastcgi + Perl配置手册
author: author:xupeng(xupeng@joysteam.com)
date: 2011-01-24
desc: 用Awstats来分析Nginx日志,并通过Fastcgi方式来访问。
=========================================================================
1. awstats配置安装:
cd /usr/local wget http://prdownloads.sourceforge.net/awstats/awstats-7.0.tar.gz tar -zxvf awstats-7.0.tar.gz mv awstats-7.0 awstats chown -R www:www wwwroot
#执行awstats_configure.pl进行配置
/usr/local/awstats/tools/awstats_configure.pl
#修改配置文件
vi /etc/awstats/awstats.example.com.conf LogFile="/usr/local/nginx/logs/access_%YYYY-0%MM-0%DD-24.log" LogFormat="%host - %time1 %methodurl %code %bytesd %refererquot %uaquot %other"
==========================================================================
2. 创建和配置FPM
#安装FCGI.pm,FCGI::ProcManager
cpan>install FCGI cpan>install FCGI::ProcManager
#拷贝cgiwrap-fcgi.pl文件到/usr/local/bin/下,并赋予执行权限
chmod 755 /usr/local/bin/cgiwrap-fcgi.pl mkdir -p /var/run/nginx/ mkdir -p /var/lib/awstats
#启动daemon,并设置socket权限为nginx用户读写,否则502
/usr/local/bin/cgiwrap-fcgi.pl > /dev/null 2>&1 & chown -R www:www /var/run/nginx/cgiwrap-dispatch.sock
#停止daemon命令
ps aux|grep perl-fcgi-pm #获得进程id kill -TERM 进程id
==========================================================================
3. Nginx 配置
vi /usr/local/nginx/conf/fastcgi_params fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; # PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200;
配置nginx
vi /usr/local/nginx/conf/nginx.conf
#awstats format 注意要和awstats的log格式一样,包括空格,否则无法生成数据
#awstats format
log_format main '$remote_addr - [$time_local] "$request"'
' $status $body_bytes_sent "$http_referer" "$http_user_agent" $upstream_cache_status';
access_log logs/access.log main;
server {
# ip和server_name 自行修改
listen 127.0.0.1:80;
server_name n1.awstats.com;
access_log off;
root /usr/local/awstats/wwwroot;
index index.html;
location ~ ^/cgi-bin/.*\.cgi$ {
gzip off;
fastcgi_pass unix:/var/run/nginx/cgiwrap-dispatch.sock;
fastcgi_index index.cgi;
include fastcgi_params;
}
}
=============================================================================
4. 定时脚本:
脚本内容如下:
touch /usr/local/nginx/sbin/logcron.sh && chmod u+x /usr/local/nginx/sbin/logcron.sh #!/bin/bash # author:xupeng(xupeng@joysteam.com) # 日志切割脚本 mv /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access_`date +%Y%m%d`.log kill -s SIGUSR1 `cat /usr/local/nginx/nginx.pid`
touch /usr/local/nginx/sbin/awstats_up.sh && chmod u+x /usr/local/nginx/sbin/awstats_up.sh 内容如下: #!/bin/bash # author:xupeng(xupeng@joysteam.com) # 更新awstats日志 /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=example.com
#添加crontab任务:
#23:59切割nginx日志
59 23 * * * /usr/local/nginx/sbin/logcron.sh
# 2点开始生成awstats统计数据
00 2 * * * /usr/local/nginx/sbin/awstats_up.sh
访问方式:
修改hosts
74.222.1.131 n2.awstats.com
URL:http://n2.awstats.com/cgi-bin/awstats.pl?config=img3.bizark.cn
附件下载:cgiwrap-fcgi


![[转]常见的nginx的配置选项](http://www.jiunile.com/wp-content/themes/xupeng/images/random/22.jpg)




最新评论
如何建立自己的特征码呢? 我
怎么修改啊,帮帮忙啊,,,,
你好,我照您的方法做了之后,
可否请教,要如何的调整呢?
拜读……
您这个是是2003的服务器
安装上以后 发现运行了 直接
有点意思,不错!
你QQ号多少?我是智生道顾问
请问你是怎么修改的啊?为什么