文档章节

Nginx配置文件实现AWStats静态页面

李长春
 李长春
发布于 2012/02/10 16:35
字数 915
阅读 163
收藏 1

Nginx配置文件在有些时候需要我们不断的更新,虽然AWStats现在已经支持输出静态网页形式的分析结果,但是页面布局没有用Perl生成的动态网页方便,而且用自带的用Perl编写的转换工具稍微有点慢,在流量不大的情况下,还是在Perl+Fast CGI上运行更舒服一些。

首先要参考之前的文章,建立好PERL+FCGI的运行环境,这步准备工作就够费劲的。

然后开始切入正题:

1. 下载最新版的AWStats,基本就是Perl包,所以没必要用apt-get,解压缩到/usr/local/awstats下

wget http://prdownloads.sourceforge.net/awstats/awstats-6.95.tar.gz
tar -xzf awstats-6.95.tar.gz
mv awstats-6.95 /usr/local/awstats

2. 创建一个存放awstats分析数据的目录

mkdir /var/lib/awstats
chown www-data /var/lib/awstats //这是为了让awstats页面上能直接刷新最新数据

3. 自动配置awstats

cd /usr/local/awstats/tools
perl awstats_configure.pl

除了第一步因为是Ngin服务器的关系,所以要选none,其他基本按照提示选默认值

4. 手工编辑Nginx配置文件

1) 修改LogFile路径

LogFile = “/var/log/Nginx/access.log”

如果是压缩格式的日志,可以用LogFile = “zcat /var/log/Nginx/%YYYY-24%MM-24%DD-24.gz|"。这里用zcat是因为其使用管道输出,对系统资源消耗比较小,千万不要忘了最后的管道操作符!

假设原来/etc/Nginx/Nginx.conf中关于log部分是如此定义的:(要小心各个变量之间必须添加的空格,不能少,否则awstats就不认了)

log_format main ‘$remote_addr $remote_user [$time_local] “$request” $status ‘
‘$host $body_bytes_sent $gzip_ratio “$http_referer” ‘
‘”$http_user_agent” “$http_x_forwarded_for”‘;

很容易知道,对应awstats配置文件中,LogFormat应该设置为
LogFormat= “%host %logname %time1 %methodurl %code %host_r %bytesd %gzipratio %refererquot %uaquot %otherquot”

最后一个选%otherquot是应为$http_x_forwarded_for在AWstats 6.95中还不认识

3) 将AllowToUpdateStatsFromBrowser=1,便于浏览器中即时刷新数据

5. 更新Awstats的分析记录,测试一下刚才的配置

/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=yousite.com

如果一切正常,应该看到类似以下的结果:

Create/Update database for config “/etc/awstats/awstats.yoursite.com.conf” by AWStats version 6.95 (build 1.943)
From data in log file “/var/log/Nginx/access.log”…
Phase 1 : First bypass old records, searching new record…
Searching new records from beginning of log file…
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)…
Jumped lines in file: 0
Parsed lines in file: 1234
Found 0 dropped records,
Found 0 corrupted records,
Found 0 old records,
Found 1234 new qualified records.

6. 修改logrotate.d下的Nginx配置文件,在每天切割日志前,更新awstats状态


  
  1. /var/log/nginx/*.log {  
  2. daily  
  3. missingok  
  4. rotate 7  
  5. compress  
  6. delaycompress  
  7. notifempty  
  8. create 640 www-data www-data  
  9. dateext  
  10. sharedscripts  
  11. prerotate  
  12. /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=yoursite.com  
  13. sleep 59  
  14. endscript  
  15. postrotate  
  16. if [ -f /var/run/nginx.pid ]; then  
  17. kill -USR1 `cat /var/run/nginx.pid`  
  18. fi  
  19. endscript  

7. 接下来是最关键的NGINX配置文件


  
  1. #AWStatus Perl CGI server  
  2. server {  
  3. listen 80;  
  4. server_name awstats.yoursite.com;  
  5. access_log /var/log/nginx/awstats.log main;  
  6. error_log /var/log/nginx/awstats_error.log; #这可以为fail2ban留下记录  
  7. root /usr/local/awstats/wwwroot;  
  8. auth_basic “Restricted”;  
  9. auth_basic_user_file /etc/nginx/awstatus.pass;  
  10. location = / {  
  11. rewrite ^ /awstats.pl?config=freshventure.info;  
  12. }  
  13. location ~ .*(\.cgi|\.pl?)$ {  
  14. gzip off; #gzip makes scripts feel slower since they have to complete before getting gzipped  
  15. root /usr/local/awstats/wwwroot/cgi-bin;  
  16. fastcgi_pass 127.0.0.1:8000;  
  17. fastcgi_index awstats.pl;  
  18. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
  19. include fastcgi_params;  
  20. }  

好了,测试一下http://awstats.yoursite.com,和前文一样,输入密码后,这次看到的应该就awstats的界面了

8. 如果需要配置静态页面,则可以在logrotate中替换掉上面的awstats.pl, 换成

/usr/local/awstats/tools/awstats_buildstaticpages.pl -update -config=yoursite.com -lang=cn -dir=/usr/local/awstats/wwwroot -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl。

如果需要更频繁的更新访问情况,则可以把这句命令加入到crontab中,例如crontab -e -uwww-data。

然后nginx配置文件相应调整为显示静态网页就可以了。

本文转载自:http://developer.51cto.com/art/201003/190951.htm

李长春
粉丝 81
博文 249
码字总数 117406
作品 0
海淀
私信 提问
加载中

评论(1)

Aceslup
Aceslup
楼主的排版,说真的,看起来好累人。
求高手,关于linux下awstats的问题!

服务器用的nginx,我的配置如下: /etc/awstats/下的配置文件awstats.xxx.com.conf LogFile="/var/log/awstats/xxx.com.access_20111019.log" LogType=W LogFormat=1 DirData="/var/lib/aws......

菜鸟而已
2012/03/03
657
0
awstats和jawstats对apache、nginx进行多站点日志分析

一、日志拆分 1、配置apache使用cronolog: 由于实验用的apache开启了虚拟主机功能,所以以下配置都在虚拟主机中进行,这样也是为了方便对多站点的分析操作。 vim /etc/httpd/conf.d/vhosts.c...

wushank
2018/06/26
0
0
日志分析软件awstats的安装使用简易指南

日志分析软件awstats的安装使用简易指南 1. 下载地址 http://sourceforge.net/projects/awstats/ http://voxel.dl.sourceforge.net/sourceforge/awstats/awstats-6.4-1.noarch.rpm 2. 安装 ......

zt371
2009/05/06
1K
0
nginx日志分割处理以及分析

在很多时候,我们会非常关注网站的访问量,比如网站的日PV是多少、网站某个功能上线之后点击量是多少,像这些东西都是需要从web容器中的访问日志统计出来的,下面我们看一下如何在nginx中统计...

独钓渔
2015/08/26
0
0
在httpd服务器(httpd-2.4)中搭建AWStats日志分析系统

AWStats简介: AWStats是使用Perl语言开发的一款开源日志分析系统。它不仅可以用来分析Apache网站服务器的访问日志,也可以用来分析Samba、Vsftpd、IIS等服务的日志文件。结合crond等计划任务...

cchenyz
2018/06/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

进程命令ps

命令ps 用途: 显示当前系统的进程状态 语法: ]# ps [选项] 常用选项: aux = 列出正在运行的所有进程; a 显示现行终端机下的所有程序,包括其他用户的程序 u 以用户为主...

迷失De挣扎
38分钟前
3
0
聊聊spring cloud的CachingSpringLoadBalancerFactory

序 本文主要研究一下spring cloud的CachingSpringLoadBalancerFactory CachingSpringLoadBalancerFactory spring-cloud-openfeign-core-2.2.0.M1-sources.jar!/org/springframework/cloud/o......

go4it
昨天
4
0
一篇文章搞定——JDK8中新增的StampedLock

一、StampedLock类简介 StampedLock类,在JDK1.8时引入,是对读写锁ReentrantReadWriteLock的增强,该类提供了一些功能,优化了读锁、写锁的访问,同时使读写锁之间可以互相转换,更细粒度控...

须臾之余
昨天
4
0
Android Camera原理之CameraDeviceCallbacks回调模块

在讲解《Android Camera原理之openCamera模块(二)》一文的时候提到了CameraDeviceCallbacks回调,当时没有详细展开,本文我们详细展开讲解一下。 CameraDeviceCallbacks生成过程: 《Android...

天王盖地虎626
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部