Skip to content

S25-SNA-Project/HTTP-Load-Balancer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reverse Proxy Load Balancer System


Overview

This system simulates a reverse proxy (load balancer) that distributes incoming requests to backend servers based on the least number of active connections. The backend servers simulate long-lived sessions or compute-intensive endpoints. The project is designed to handle HTTP-based web service requests and efficiently distribute them using a front-end load balancer.


Demo

System Components

  1. Load Balancer (Gateway): This component is responsible for distributing incoming HTTP requests to backend servers based on their load.
  2. Backend Servers: These servers handle requests from the load balancer. They simulate long-lived sessions or compute-intensive tasks.

Key Features

  • Iterative Request Redirection: Unlike traditional proxy systems, this solution uses an iterative approach to redirect clients to the backend server with the least active connections.
  • High Traffic Scalability: The system optimizes resource utilization and improves scalability for high-traffic environments.
  • Centralized Control: Despite the distributed backend architecture, the system maintains centralized control for optimal routing decisions.


Technologies Used

  • : Lightweight and high-performance async HTTP server.
  • , : Async HTTP clients for backend communication.
  • : Containerization.
  • : Used for orchestrating all containers and services across nodes.
  • : Security monitoring and agent-based system-level log collection.

Deployment

The system was deployed using Nomad as the orchestration platform across multiple virtual machines.

🧩 Infrastructure Setup

  • All components were orchestrated using Nomad job specifications.
  • Wazuh Agent was deployed via Nomad on every node for system-level security monitoring.
  • The application code (load balancer and backend services) was deployed only to appropriate nodes using Nomad's job constraints to control placement.
  • Each component was declared in a dedicated .nomad job file for reproducibility.

📡 Observability

Logs are handled by a unified logging stack:

  • Wazuh Agent collects system-level and security-relevant logs.

🔗 Live Demo

Demo


💡 This deployment strategy ensures better scalability, security, and separation of concerns between logging, orchestration, and service logic.

Contributing

Feel free to fork this repository and submit pull requests. Any contributions to improve the system, such as adding new features, enhancing performance, or improving security, are welcome!


Contacts

Artem Ostapenko

Aliya Sagdieva

Ivan Lobazov

Elizaveta Zagurskih


License

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •