http reverse proxy for personal use
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


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)


  • 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 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": "",
  "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


  • better no-backend handling

  • runtime authenticated config updates over admin api

  • rate-limiting (per backend config)

  • circuit breaker (per backend config)