A / B-тестирование с использованием Apache и Mod_rewrite - PullRequest
5 голосов
/ 22 июля 2011

Пробовал искать это, но моего гугл-фу сегодня не хватает.

Итак, у меня есть 2 версии сайта, в

/var/www/vhosts/testa.mydomain.com/httpdocs and 
/var/www/vhosts/testb.mydomain.com/httpdocs

, где каждый documentroot - это почти полный пересмотр сайта, и я хочу провести A / B (многовариантное) тестирование, чтобы увидеть, какаясайт работает лучше.

Погуглив на прошлой неделе, я видел предложения о том, чтобы делать это на основе времени (четные и нечетные секунды), но, поскольку сайт является корзиной (или, может быть, даже корзиной!), Я не хочу бросатьмежду 2 различными сценариями обработки в середине транзакции.

Поэтому я подумал, что было бы неплохо обслужить из testa, если последний октет ip-адреса клиента был четным, и из testb, если последний октет был нечетным.Тогда мы могли бы, по крайней мере, получить некоторые показатели того, сколько людей покинули корзину, поскольку они слишком громоздки в разных версиях сайта.

Я почти уверен, что это сделает куча строк RewriteCond на основе% {REMOTE_ADDR}, но я довольно бесполезен в mod_rewrite.

пользователи будут посещать test.mydomain.comи должны быть поданы из одного или другого DocumentRoot равномерно, не видя testa или testb в их URL, но мы могли бы записать производительность каждого варианта.

Любой любезно гуру может посоветовать?

TIA David

Обновление: я могу настроить testa.mydomain и testb.mydomain в качестве поддоменов через виртуальные хосты, если это поможет.

Ответы [ 3 ]

4 голосов
/ 29 июля 2011

Вариант 1 (Перенаправления) добавить один из них в оба домена

Место на четном сайте (testb.mydomain.com)

RewriteEngine On
RewriteCond %{REMOTE_ADDR} [13579]$
RewriteRule .* http://testa.mydomain.com/$1 [R=301,L]

Разместить на сайте с нечетным номером (testa.mydomain.com)

RewriteEngine On
RewriteCond %{REMOTE_ADDR} [02468]$
RewriteRule .* http://testb.mydomain.com/$1 [R=301,L]

Опция 2 (подпапки НЕ поддоменов)

RewriteEngine On
#direct to EVEN SITE
RewriteCond %{REMOTE_ADDR} [02468]$
RewriteRule (.*) /testa.mydomain.com/$1 [L]

#direct to ODD SITE
RewriteCond %{REMOTE_ADDR} [13579]$
RewriteRule (.*) /testb.mydomain.com/$1 [L]
1 голос
/ 11 января 2017

Google теперь предлагает тестирование A / B / N через интерфейс / API Google Analytics Experiment.

Статья об этом написана по адресу: https://blog.crazyegg.com/2015/06/02/ab-testing-google-analytics/

Подробнее об этом можно прочитать в Google по адресу: https://developers.google.com/analytics/solutions/experiments

Таким образом, одной из возможностей будет поставитьGoogle отслеживает обе версии вашего сайта и позволяет Google обрабатывать перенаправления вашего сайта (вы можете сделать так, чтобы перенаправления были всегда одинаковыми или использовать подход Multi-Armed бандитов).

0 голосов
/ 29 июля 2011

Вы пробовали балансировщик нагрузки?

Вы можете настроить правила балансировки нагрузки с помощью файла rules.xml или с помощью кода (Rule и RuleChain).Должен быть пример системы в / балансировщик, который показывает вам, как писать правила.

См. Также

http://tomcat.apache.org/tomcat-5.5-doc/balancer-howto.html#Sample_Configuration

http://onjava.com/pub/a/onjava/2004/03/31/clustering.html

...