Original post

Github: https://github.com/panjf2000/goproxy

Introduction

goproxy is a load-balancing, reverse-proxy server implemented in , supporting cache( by redis). As a load-balancing server, it supports 4 algorithms: Randomized Algorithm, Weight Round Robin Algorithm, Power of Two Choices (P2C) Algorithm, IP Hash Algorithm, Consistent Hashing with Bounded Loads Algorithm, besides, goproxy can dominate the http requests: filtering and blocking specific requests and even rewriting them.

Sometimes your program needs to call some third party API and wants to customize the responses from it, in that case, goproxy will be your great choice.

Features:

  • Supporting reverse-proxy, 6 load-balancing algorithms in goproxy: Random, IP Hash, Round Robin, Weight Round Robin, Power of Two Choices (P2C), Consistent Hashing with Bounded Loads
  • Supporting GET/POST/PUT/DELETE Methods in http and CONNECT method in https in goproxy
  • Supporting HTTP authentication
  • Filtering and blocking specific http requests and even rewriting them in goproxy
  • Customizing responses from third-party API
  • Cache support with memory or redis to speed up the responding and the expired time of caches is configurable
  • Flexible and eager-loading configurations

submitted by /u/panjf2000
[link] [comments]