转载

小实验,用蜂巢搭建了一个曝光量监测服务

产品需要监测论坛帖子的曝光量,但是苦于没有适合的工具进行监测,于是用蜂巢LAMP镜像快速搭建了一个曝光监测服务。

曝光监测的思路是

提供一个1像素gif图片的链接,在论坛帖子中通过/<img src="..." />来访问图片链接,当论坛帖打开时,通过gif链接的访问来统计曝光量;曝光渠道则是通过链接传入的参数来区分;在服务中,把gif访问链接重定向到一个统计php中,将访问的时间戳、渠道计入MySQL。

具体实践过程

1,先申请一个容器,部署LAMP镜像。

2,然后修改 /etc/apache2/apache2.conf 的日志输出格式,将%h换成%{X-Real-IP},获取真实的访问IP

3,在/var/www中修改 .htaccess ,如果没有这个文件就创建一个

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^s.gif.*$ count.php [L,R=301]
</IfModule>

4,设置数据库用户、权限、表,具体过程略

5,在/var/www下创建一个 count.php 和一个1像素的 a.gif

小实验,用蜂巢搭建了一个曝光量监测服务
<?php
$con=mysql_connect("127.0.0.1:7896","counter","1234");
if(!$con)
{
die ('Could not connect' . mysql_error());
}
mysql_select_db("counter", $con);
$sql= "INSERT INTO record (ip, timestamp, act) VALUES('" . $_SERVER['REMOTE_ADDR'] . "','" .$_SERVER['REQUEST_TIME'] . "','" . $_SERVER['REQUEST_URI'] . "')";
mysql_query($sql);
mysql_close($con);
//返回一个真实的1像素图片数据
$gifurl="/a.gif";
header("Content-type:image/gif");
header("Content-Length:".filesize($gifurl));
header("Content-Disposition: attachment; filename=" . urldecode($gifurl));
readfile($gifurl);
exit();
?>

至此,统计代码已经准备好。在论坛帖子中增加/<img src=" http://host/s.gif?docone "/> ,即可统计到帖子曝光量数据。

原文  http://dockone.io/article/1078
正文到此结束
Loading...