Skip to content

Reverse proxy for A/B testing frontend applications

License

Notifications You must be signed in to change notification settings

lindell/revaboxy

Repository files navigation

Revabboxy logo

GoDoc GitHub Workflow Status Docker Image Size Docker Pulls Go Report Card Coverage Status

Overview

Revaboxy is a reverse proxy made for A/B testing of front end applications. It is placed in front of two or more versions of a frontend and does randomize the trafic to the different versions based on probability. When a users browser makes subsequent requests, revaboxy will automaticly select the same version as before.

Revaboxy is released as docker images, binaries for linux/windows/mac and as a Go library.

Environment Variables

Configuring the versions

When setting up Revaboxy, every version has to be setup with the url and probability that it will be selected. These environment variables are called VERSION_NAME_URL and VERSION_NAME_PROBABILITY.

As an example, say we have two version, one called DEFAULT and one called GREEN_BACKGROUND. The environment variables needed would be:

VERSION_DEFAULT_URL=http://defaulturl
VERSION_DEFAULT_PROBABILITY=0.6
VERSION_GREEN_BACKGROUND_URL=http://greenbackgroundurl
VERSION_GREEN_BACKGROUND_PROBABILITY=0.4

Setting to change the behavior of revaboxy

Name Default Description
HOST The host that the server should listen to, the default value makes it listen on all hosts
PORT 80 The port that server should listen on
HEADER_NAME Revaboxy‑Name The header name sent to the downsteam application
COOKIE_NAME revaboxy‑name The cookie name that is set at the client to keep track of which version was selected
COOKIE_EXPIRY 7d The time before the cookie containing the a/b test version expires