weeproxy

command module
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Feb 19, 2019 License: MIT Imports: 13 Imported by: 0

README

WeeProxy

WeeProxy is a wee bit http proxy to access http services mapped over URL path.

  • HTTP Proxy based on URL path mapped to Backends

  • round-robin load-balancing

  • graceful stop/restart

  • prometheus performance metrics at /metrics

  • configurable header customization

  • rate-limiting (same config for all backends)

  • circuit breaker (same config for all backends)

Quikstart
  • start server
dep ensure

go run weeproxy.go
  • can also be used by downloaded pre-compiled binary from latest release, remember to have sample config in same dir or set required env var

  • check http

curl localhost:8080/nothing

curl localhost:8080/google
Config
  • config to be used can be changed by providing path to env var WEEPROXY_CONFIG

  • proxies based on URL Path maps provided as configuration like, sample config

{
  "server": {
    "listen-at": ":8080"
  },
  "url-proxy": {
    "/google": "http://www.google.com http://www.google.in",
   ....more
  },
  "custom-headers": {
    "X-Proxy-By": "WeeProxy"        // custom response headers for each response
  },
  "sanity": {
    "max-errors-per-sec": "10",     // per backend max errors allowed before ban
    "max-request-per-sec": "7000"   // per backend max requests allowed before ban
   }
}

in sample config above, when multiple backends need be load-balanced they are separated by a space

if any other character gets used as separator, env WEEPROXY_LB_SEPARATOR need be set with same

  • port to listen at can be modified updating listen-at field in above config

ToDo
  • better no-backend handling

  • runtime authenticated config updates over admin api

  • rate-limiting (per backend config)

  • circuit breaker (per backend config)


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