All Projects → arbazsiddiqui → anabranch

arbazsiddiqui / anabranch

Licence: MIT License
A simple HTTP load balancer and reverse proxy written in Go.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to anabranch

HAProxy-2-RPM-builder
Build latest HAProxy binary with prometheus metrics support
Stars: ✭ 28 (+12%)
Mutual labels:  load-balancer, reverse-proxy
Ansible Role Haproxy
Ansible Role - HAProxy
Stars: ✭ 112 (+348%)
Mutual labels:  load-balancer, reverse-proxy
Bfe
A modern layer 7 load balancer from baidu
Stars: ✭ 5,185 (+20640%)
Mutual labels:  load-balancer, reverse-proxy
Nuster
A high performance HTTP proxy cache server and RESTful NoSQL cache server based on HAProxy
Stars: ✭ 1,825 (+7200%)
Mutual labels:  load-balancer, reverse-proxy
Traefik
The Cloud Native Application Proxy
Stars: ✭ 36,089 (+144256%)
Mutual labels:  load-balancer, reverse-proxy
Haproxy
HAProxy Load Balancer's development branch (mirror of git.haproxy.org)
Stars: ✭ 2,463 (+9752%)
Mutual labels:  load-balancer, reverse-proxy
sensu-plugins-aws
This plugin provides native AWS instrumentation for monitoring and metrics collection, including: health and metrics for various AWS services, such as EC2, RDS, ELB, and more, as well as handlers for EC2, SES, and SNS.
Stars: ✭ 79 (+216%)
Mutual labels:  load-balancer
TutoAsus
Tutorial on how to setup a nginx reverse proxy on Asus router with Merlin firmware, and get Let's Encrypt certificate with acme.sh.
Stars: ✭ 35 (+40%)
Mutual labels:  reverse-proxy
crank4go
API Gateway implemented in Golang
Stars: ✭ 124 (+396%)
Mutual labels:  reverse-proxy
Gauntlet
🔖 Guides, Articles, Podcasts, Videos and Notes to Build Reliable Large-Scale Distributed Systems.
Stars: ✭ 336 (+1244%)
Mutual labels:  load-balancer
Azure-AKS-ApplicationGateway-WAF
No description or website provided.
Stars: ✭ 16 (-36%)
Mutual labels:  loadbalancer
jrinetd
Jrinetd is a network TCP port redirector/forward proxy (like rinetd) with extra features like connection Failover, LoadBalancing and Clustering. In pure Java (NIO)
Stars: ✭ 20 (-20%)
Mutual labels:  load-balancer
ipns-link
Expose local http-server (web-app) through IPNS
Stars: ✭ 18 (-28%)
Mutual labels:  reverse-proxy
docker-reverse-proxies
Sample usage for various reverse proxies in Docker setups
Stars: ✭ 43 (+72%)
Mutual labels:  reverse-proxy
magento-cluster
Highly Available and Auto-scalable Magento Cluster
Stars: ✭ 21 (-16%)
Mutual labels:  load-balancer
loadbalancer-controller
Kubernetes loadbalancer controller to provision ingress controller dynamically
Stars: ✭ 93 (+272%)
Mutual labels:  loadbalancer
leproxy
https reverse proxy with automatic Letsencrypt usage for multiple hostnames/backends
Stars: ✭ 89 (+256%)
Mutual labels:  reverse-proxy
minimal-reverse-proxy-demo
docker-compose nginx reverse proxy demo
Stars: ✭ 140 (+460%)
Mutual labels:  reverse-proxy
f5-openstack-lbaasv2-driver
F5 LBaaSv2 service provider driver for OpenStack Liberty and beyond
Stars: ✭ 20 (-20%)
Mutual labels:  load-balancer
wolfpacs
WolfPACS is an DICOM load balancer written in Erlang.
Stars: ✭ 1 (-96%)
Mutual labels:  load-balancer

anabranch

Build Status Go Report Card

A simple HTTP load balancer and reverse proxy written in Go.

Features

  • Round Robin
  • Least Connection
  • Passive health check at configurable interval
  • Request Id injection
  • Config support using json

Usage

  1. Clone the repo using git clone [email protected]:arbazsiddiqui/anabranch.git && cd anabranch
  2. Use the existing binary anabranch or build a new one using go build
  3. Change the existing config to your needs or create a new one.
  4. Run the load balancer using ./anabranch -config=./config.json

Config

port

The port to the run the load balancer on.

hosts

A list of hosts we want to forward requests to.

strategy

Algorithm for load balancing. Can be roundRobin or leastConnections.

health_check_type

Defines the type of health check you want to perform on your host. Can be passive or none (for no health check). Active health check is WIP.

health_check_interval

Time interval in seconds to perform health check on hosts.

add_request_id

Boolean to add a unique request id in header of every request to downstream hosts. Header name : Request-Id

Sample Config

{
  "port": 9000,
  "hosts": [
    "http://localhost:8080",
    "http://localhost:8081",
    "http://localhost:8082"
  ],
  "strategy" : "roundRobin",
  "health_check_type" : "passive",
  "health_check_interval" : 5,
  "add_request_id" : true
}

Todo

  • Add support for retires
  • More test coverage
  • Add support for active health check
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].