作者文章: Fenng

Nginx 与 Awstats (FastCGI for Perl)

配置好 Nginx 后,可能有的朋友还想用 Awstats 分析日志。如果另外再起一个 Apache ,觉得费二遍事。如果在 Nginx 上跑 Awstats ,还需要 FASTCGI 支持。配置的方法有些山寨。Nginx 尽管提供 Perl 模块支持,毕竟还是实验性质的。

对比了一些文章,决定还是用 nginx-fcgi 这个脚本。作者是 Daniel Dominik Rudnicki 。这个脚本要比顺子文中提到的要好一点。

该脚本中用到如下的 Perl 模块。所以使用前要确保相关 Perl 模块已经存在。要不,手工下载安装一下。

  • perl-FCGI
  • perl-Getopt
  • perl-IO
  • perl-Socket

使用命令示意:

/usr/local/nginx/nginx-fcgi -S /tmp/fastcgi.sock -l /var/log/nginx/nginx-fcgi.log
-pid /var/run/nginx-fcgi.pid

网上常见的那个脚本必须要显示的指定最为后台进程跑。不是很完善的方法。

注意事项:不能用 root 用户执行(会提示). 要用与 Nginx 相同身份的用户执行。否则可能会在 Nginx Log 中提示 Permision Denied 。

Nginx 中配置好 Log 格式:

log_format  main          '$remote_addr - [$time_local] "$request" ' 
'$status $body_bytes_sent "$http_referer"'
'"$http_user_agent" $http_x_forwarded_for';

相对应的 Awstats 中 Log 格式为:

LogFormat = "%host - %time1 %methodurl %code %bytesd %refererquot %uaquot" 

其他的配置参考一下Sunnyu 的 “为了Awstats给Nginx添加FastCGI方式的Perl支持” 应该就成了。

BTW: 应该说,Nginx 能够有效抵挡搜索引擎爬虫对网站的影响。对于 Apache 来说,这是个很大的进步。

EOF

更新:如果手工写脚本做 Nginx 日志 logrotate 的话,注意不要简单的用 mv 命令, cp 然后 echo ”> 的方式更好。

推荐: Sina 张宴的 Nginx 0.7.x + PHP 5.2.6(FastCGI)搭建胜过Apache十倍的Web服务器(第4版),这是目前关于 Nginx 最详细的实践文章。

看片会与 Sun 用户组活动归来

上午先在公司解决了一下 Nginx 上跑 Awststs 的问题。然后出门了。计划中我的分享从 3 点开始,先绕道去看一下王晓峰导的 DV 看片会。赶到凡人咖啡馆,都已经没位置了,只好在前面水管上坐着。不得不说,这个咖啡馆在这个下午成了全杭州小资的密集聚集地。

王小峰导演(在字幕上用”小”而不是”晓”)简单的做了致辞,告诉大家做字幕的小伙子很辛苦,同时现在的这个版本配音效果有点问题。然后就开演啦。片名《你丫真狠》,讲的是狗仔队的事儿。编剧很见功力,导演水平也明显比前面的《小强历险记》和《十面埋妇》有进步。可惜因为时间关系,我只看了一半就走了,还不知道后半部剧情如何发展的。

在预定的时间前赶到了青藤茶馆,参加活动的人来得不少,大家对技术的热情可见一斑,只是杭州的技术活动相对比较少。今天美中不足的是场地有点小,多少有点局限。中场休息了一会儿,开始我的分享,基本上讲一小段会回答一到两次提问,这种交互式的交流我还是比较喜欢的。如果完全对着 PPT 对很多人讲,其实效果不那么好的。整个 PPT 主要部分在这几个实践点:

  • 建立基准测试(IO层、网络、Cache、App 等)
  • 持久性 Connection(“连接风暴”问题)
  • 选取合适的数据类型
  • 非关系型数据的存储选择
  • 分区与 Sharding
  • 反范式(Denormalization)
  • 抛弃存储过程封装业务逻辑的思路

没有内容只有骨架,在这里看起来好像干巴巴的。希望有时间能就这个话题写一篇文稿出来。今天同行的还有同事简朝阳,他最近在 MySQL 方面做了不少研究。

这次活动的视频

EOF

明天将参加杭州 OpenSolaris 用户组活动

os_hangzhou_350.jpg明天下午将去参加 InfoQ 中文站主办的 体验基于OpenSolaris的Web/企业应用 活动,这也是杭州 OpenSolaris/OpenSource 用户组的第一次活动。

我应邀将在活动上做个关于数据库的分享,主题为 “设计可扩展的面向互联网应用的MySQL数据库” ,欢迎感兴趣的朋友光临指导。具体时间和地点 ? 就在上面的链接里 …

自从 Sun 把 MySQL 收购了之后,好像关于数据库的市场活动并不大,相反,倒是对操作系统做了一些不遗余力的推广。当然,现在的 Solaris 倒也并非没有长处,ZFSDtrace 就是两个很有趣的东西,而这两者对 MySQL 都是很好的互补,对 Linux 其实也是很好的互补,尤其是 ZFS ,最近一段时间,越来越觉得 Linux 的 EXT 文件系统在某些场景多少还有点短板。期待明天能听到关于 ZFS 和 Dtrace 的一些内容。

补充:听说 Sina 有一部分机器用了 OpenSolaris,但也应该是试水性质的吧。国内其他网站有没有用 OpenSolaris 的?

EOF