hot-potato-router

command module
v0.0.0-...-acfe66a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 24, 2014 License: Apache-2.0 Imports: 6 Imported by: 0

README

HPR - Hot Potato Router

######## dynamic reverse proxy

How it works?

HPR receives a connection from interwebs, looks for http backends on Redis for a given vhost and proxy the connection among all backends.

Config:

hpr.conf
hpr:
  http_addr: :80                 # bind address
  https_addr:                    # https_addres
  cert_file:                     # cert file for https
  key_file:                      # key file for https
  probe_interval: 50             # seconds between probes
  db_backend: redis              # backend type

redis:
  server_list: 127.0.0.1:6379    # list of redis servers to connect

Instalation:

Building
$ git clone https://github.com/ncode/hot-potato-router.git
$ cd hot-potato-router
$ go get -v .
$ make build
$ hpr
Packaging on Debian and Ubuntu
$ apt-get install golang
$ git clone https://github.com/ncode/hot-potato-router.git
$ cd gogix hot-potato-router
$ dpkg-buildpackage -us -uc -rfakeroot
$ /etc/init.d/hot-potato-router start

Cli:

hprctl
$ hprctl -h
Hot Potato Router Control

Usage:
  hprctl add <vhost> <backend_ip:port> [--weight=<n>]
  hprctl del <vhost> <backend_ip:port> [--weight=<n>]
  hprctl show <vhost>
  hprctl list

Args:
  add           add a new vhost and backend
  dell          del a vhost and a backend
  show          show all backends from a given vhost
  list          list all vhosts

Options:
  -h --help     Show this screen.
  --version     Show version.
  --weight=<n>  Weight in wrr [default: 1].

$ hprctl add hpr.martinez.io 127.0.0.1:8080
$ hprctl add hpr.martinez.io 127.0.0.1:8081
$ hprctl show hpr.martinez.io
:: vhost [ hpr.martinez.io ]
-- backend 127.0.0.1:8080 weight=1
-- backend 127.0.0.1:8081 weight=1

$ hprctl list
:: vhost [ hpr.martinez.io ]

Depends:

Todo:

  • Improve the database support adding more backends
  • Add more load balancing algorithms
  • Implement the api on hpr and stop calling direct the database

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL