https://github.com/abinashphulkonwar/route-master
Route Master is a Go-based load balancer and reverse proxy, enabling users to efficiently distribute incoming traffic across multiple servers.
https://github.com/abinashphulkonwar/route-master
devops go infrastructure-as-code load-balancer monitoring-and-metrics performance-optimization reverse-proxy scalability web-server
Last synced: about 1 month ago
JSON representation
Route Master is a Go-based load balancer and reverse proxy, enabling users to efficiently distribute incoming traffic across multiple servers.
- Host: GitHub
- URL: https://github.com/abinashphulkonwar/route-master
- Owner: abinashphulkonwar
- License: mit
- Created: 2023-04-05T06:14:43.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-01-27T13:48:15.000Z (about 2 years ago)
- Last Synced: 2025-12-17T11:27:37.547Z (4 months ago)
- Topics: devops, go, infrastructure-as-code, load-balancer, monitoring-and-metrics, performance-optimization, reverse-proxy, scalability, web-server
- Language: Go
- Homepage:
- Size: 60.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# Route-Master
Route-Master is a lightweight, open-source load balancer and reverse proxy tool built in Go. It's designed to distribute incoming network traffic across multiple servers to improve performance, reliability, and scalability.
## Features
- Load balancing: Distribute incoming network traffic across multiple servers to optimize resource usage and avoid overloading any single server.
- Reverse proxy: Serve as a gateway between clients and servers to protect the identity of the server and improve security.
- Dynamic configuration: Update the routing rules and target servers in real-time, without requiring a restart or downtime.
- HTTPS support: Route-Master supports HTTPS traffic, enabling secure communication between clients and servers.
- Logging: Track and monitor incoming requests, server responses, and errors with detailed logs.
# Installation
To install Route-Master, you need to have Go installed on your system. You can install it by following the instructions on the official website: https://golang.org/doc/install.
Once you have Go installed, you can download and install Route-Master using the following command:
```sh
$ go get github.com/abinashphulkonwar/route-master
```
## build binary for your operation system
```
$ go build github.com/abinashphulkonwar/route-master
```
or download [binary](https://github.com/abinashphulkonwar/route-master/releases/tag/v1.0.0)
# Configuration
Route-Master uses a YAML configuration file to specify the routing rules and target servers. You can define multiple routes and their corresponding target servers in the configuration file. Here's an example configuration file:
```yaml
server:
host: "localhost"
port: 3002
node:
- node1:
scheme: "http"
target:
- "server1.8080"
- "server2.8081"
path: "/api"
- node2:
scheme: "http"
target:
- "server3:8443"
- "server4:8080"
path: "/auth"
```
This configuration file defines two routes: one for the /api path and another for the /auth path. The /api route targets server1 and server2, server1 listening on port 8080 and server2 listening on port 8081. The /auth route targets server3 and server4, server3 listening on port 8443 and server4 listening on port 8080
You can also specify additional settings such as load balancing method, health checks, and timeouts in the configuration file. For more information on configuring Route-Master, please refer to the documentation.
# Usage
To start Route-Master, run the following command:
```sh
$ route-master -f config.yaml
```
This will start Route-Master with the specified configuration file. You can then send requests to Route-Master using the defined routes and it will distribute the traffic across the target servers.
# License
Route-Master is released under the MIT License. See the LICENSE file for more information.
# Contributing
We welcome contributions to Route-Master! To contribute, please create a pull request with your changes. For major changes, please open an issue first to discuss what you would like to change.
# Contact
If you have any questions or issues, please feel free to contact us at abinashphulkonwar98@gmail.com
[](https://www.linkedin.com/in/abinash-phulkonwar-775b521a5/)
Thank you for using Route-Master!