首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

nginx作A/B测试

2012-10-29 
nginx做A/B测试事先声明,这里说的A/B测试跟工具ApacheBench没有半毛钱关系。这里说的是关于web页面转化率统

nginx做A/B测试

事先声明,这里说的A/B测试跟工具ApacheBench没有半毛钱关系。这里说的是关于web页面转化率统计方面的测试,点击这里看其解释。A/B测试是目前很多大公司采用的一种科学的统计方法。使用了这种方法后,就再也不需要争吵到底是A图片好还是B图片好了。一切看统计数据。

?

发布新版本web网站前,先做下A/B测试是最好的做法。那么,在服务器、代码结构方面应该如何实现呢?这个就是本文打算探讨的问题。

?

前提说明:本文只考虑静态页面的A/B测试。动态请求的A/B测试很容易实现,因此不作考虑。

?

?

最初的考虑:利用页面跳转

假设目标页面的URL是http://www.example.com/index.html,可以在index.html加一段随机跳转的代码,例如:

?

这种方式也是我目前最主要使用的一种方法。

?

?

?

五:自己写一个fastcgi程序

这种实现方式是我自己想的。我编写了一个abtest.cgi的fastcgi程序。

访问方式:/abtest.cgi?templist=a.html;b.html;c.html;d.html。参数templist是需要显示的不同页面。

我只需要以SSI的方式将这段代码嵌入到页面中,就神不知鬼不觉了。

下面贡献出我写的代码:

?

(这个代码写得烂别见怪。我只是个PHPer,C++代码只在大学时学过,丢光了。)

?

使用这种方式实现有一个好处,就是可以实现很多个性化的功能,而你只需要稍微修改一下上面的代码。当然,前提是你必须懂C++和fastcgi。

?

看到我这里使用C++写了一个fastcgi接口,可能你会说既然这样何不使用PHP?主要的原因是PHP太笨重了,对于每秒钟千次的请求,PHP必死无疑。

?

?

六:使用SSI判断

既然可以在nginx.conf中使用条件判断,那么是不是也可以使用SSI中的条件判断来实现呢?这样的话,就更具有通用性了。

笔者我昨天花了一个下午做实验,在apache下实验成功了,可是在nginx中却不行。在谷歌中搜索了一下,说是nginx对SSI的支持还不够好。

希望往后新版本的nginx能将这一块继续优化一下啦!

?

?

热点排行