{"id":21553358,"url":"https://github.com/mspilari/nginx-proxy-lb","last_synced_at":"2026-04-16T10:02:16.261Z","repository":{"id":263892737,"uuid":"891679874","full_name":"MSpilari/nginx-proxy-lb","owner":"MSpilari","description":"A practical repository for setting up a reverse proxy, load balancer, and rate limiter using NGINX, with monitoring powered by Spring Actuator, Prometheus, and Grafana. Includes Docker Compose for easy deployment and a sample Spring Boot backend.  Perfect for exploring modern application scalability and monitoring techniques!","archived":false,"fork":false,"pushed_at":"2025-07-26T17:07:42.000Z","size":28,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-26T22:00:07.380Z","etag":null,"topics":["actuator-spring-boot","alertmanager","circuit-breaker","docker","docker-compose","grafana","load-balancer","nginx","prometheus","rate-limiter","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MSpilari.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-20T19:02:21.000Z","updated_at":"2025-07-26T17:07:46.000Z","dependencies_parsed_at":"2025-03-18T23:15:29.334Z","dependency_job_id":null,"html_url":"https://github.com/MSpilari/nginx-proxy-lb","commit_stats":null,"previous_names":["mspilari/nginx-proxy-lb"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MSpilari/nginx-proxy-lb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MSpilari%2Fnginx-proxy-lb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MSpilari%2Fnginx-proxy-lb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MSpilari%2Fnginx-proxy-lb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MSpilari%2Fnginx-proxy-lb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MSpilari","download_url":"https://codeload.github.com/MSpilari/nginx-proxy-lb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MSpilari%2Fnginx-proxy-lb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31880884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T09:23:21.276Z","status":"ssl_error","status_checked_at":"2026-04-16T09:23:15.028Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actuator-spring-boot","alertmanager","circuit-breaker","docker","docker-compose","grafana","load-balancer","nginx","prometheus","rate-limiter","spring-boot"],"created_at":"2024-11-24T07:10:19.826Z","updated_at":"2026-04-16T10:02:16.246Z","avatar_url":"https://github.com/MSpilari.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🇺🇸 Nginx Proxy Load Balancer\n\nThis repository provides a practical setup for implementing a load balancer, a rate limiter using **NGINX**, as well as a circuit breaker and monitoring with Spring Actuator, Prometheus, and Grafana.\n\n---\n\n## 🚀 **How to Use**\n\n### 1. Prerequisites\n\n- **Docker** and **Docker Compose** installed.\n- Access to backend instances (applications that will receive balanced traffic).\n\n### 2. Clone the Repository\n\n```bash\ngit clone https://github.com/MSpilari/nginx-proxy-lb.git\ncd nginx-proxy-lb\n```\n\n### 3. Start the Service with Docker Compose\n\nRun the command:\n\n```bash\ndocker-compose up -d\n```\n\nThis will start:\n\n- A container with NGINX configured as a reverse proxy, load balancer, and rate limiter.\n- Two containers running Spring Boot, simulating two backend servers.\n- A container with Prometheus.\n- A container with Grafana.\n\n### 4. Access the Application\n\nAccess the application through the URL configured in the container (e.g., `http://localhost:8080/hello-world`).\nAccess the Grafana dashboard, already consuming data from Prometheus, via `http://localhost:3000/`.\n\n---\n\n## 📂 **Project Structure**\n\n```\nspring_app_server/\n├── .mvn/\n│   └── [Maven Wrapper files]\n├── nginx/\n│   └── [Nginx-related configurations]\n├── prometheus/\n│   └── [Prometheus configuration files]\n├── src/\n│   ├── main/\n│   │   ├── java/\n│   │   │   └── [Java source code files]\n│   │   ├── resources/\n│   │       └── [Spring Boot resource files like application.properties or application.yml]\n│   └── test/\n│       └── [Unit tests and integration tests]\n├── target/\n│   └── [Build output directory]\n├── .gitattributes\n├── .gitignore\n├── docker-compose.yaml\n├── Dockerfile\n├── HELP.md\n├── mvnw\n├── mvnw.cmd\n├── pom.xml\n└── README.md\n```\n\n---\n\n## 🛠️ **How to Contribute**\n\n1. Fork the project.\n2. Create a branch for your feature/fix: `git checkout -b my-feature`.\n3. Make the changes and commit them: `git commit -m \"My new feature\"`.\n4. Push it to your fork: `git push origin my-feature`.\n5. Open a Pull Request.\n\n---\n\n## 📄 **License**\n\nThis project is licensed under the [MIT License](LICENSE). Feel free to use, modify, and share it.\n\n---\n\n## 🧑‍💻 **Author**\n\n- **MSpilari**\n  - [GitHub](https://github.com/MSpilari)\n\nIf you have any questions or suggestions, feel free to open an issue! 😊\n\n---\n\n# 🇧🇷 Nginx Proxy Load Balancer\n\nEste repositório contém uma configuração prática para implementar um balanceador de carga, um rate limiter utilizando o **NGINX**, além de um circuit breaker e monitoramento com Spring Actuator, Prometheus e Grafana.\n\n---\n\n## 🚀 **Como Usar**\n\n### 1. Pré-requisitos\n\n- **Docker** e **Docker Compose** instalados.\n- Acesso às instâncias de backend (aplicações que receberão o tráfego balanceado).\n\n### 2. Clonar o Repositório\n\n```bash\ngit clone https://github.com/MSpilari/nginx-proxy-lb.git\ncd nginx-proxy-lb\n```\n\n### 3. Subir o Serviço com Docker Compose\n\nExecute o comando:\n\n```bash\ndocker-compose up -d\n```\n\nIsso iniciará um contêiner com o NGINX configurado como proxy reverso, balanceador de carga, rate limiter.\nDois contêineres com Sprig boot, rodando uma aplicação simulando dois servidores.\nUm contêiner com Prometheus.\nUm contêiner com Grafana.\n\n### 5. Acessar a Aplicação\n\nAcesse a aplicação através da URL configurada no contêiner (por exemplo, `http://localhost:8080/hello-world`).\nAcesso o dashboard do Grafana, já consumindo dados do Prometheus através do URL `http://localhost:3000/`\n\n---\n\n## 📂 **Estrutura do Projeto**\n\n```\nspring_app_server/\n├── .mvn/\n│   └── [Maven Wrapper files]\n├── nginx/\n│   └── [Nginx-related configurations]\n├── prometheus/\n│   └── [Prometheus configuration files]\n├── src/\n│   ├── main/\n│   │   ├── java/\n│   │   │   └── [Java source code files]\n│   │   ├── resources/\n│   │       └── [Spring Boot resource files like application.properties or application.yml]\n│   └── test/\n│       └── [Unit tests and integration tests]\n├── target/\n│   └── [Build output directory]\n├── .gitattributes\n├── .gitignore\n├── docker-compose.yaml\n├── Dockerfile\n├── HELP.md\n├── mvnw\n├── mvnw.cmd\n├── pom.xml\n└── README.md\n```\n\n---\n\n## 🛠️ **Como Contribuir**\n\n1. Faça um fork do projeto.\n2. Crie uma branch para a sua funcionalidade/correção: `git checkout -b minha-feature`.\n3. Realize as alterações e comite: `git commit -m \"Minha nova feature\"`.\n4. Envie para o seu fork: `git push origin minha-feature`.\n5. Abra um Pull Request.\n\n---\n\n## 📄 **Licença**\n\nEste projeto está licenciado sob a [MIT License](LICENSE). Sinta-se à vontade para usar, modificar e compartilhar.\n\n---\n\n## 🧑‍💻 **Autor**\n\n- **MSpilari**\n  - [GitHub](https://github.com/MSpilari)\n\nSe tiver dúvidas ou sugestões, sinta-se à vontade para abrir uma issue! 😊\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmspilari%2Fnginx-proxy-lb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmspilari%2Fnginx-proxy-lb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmspilari%2Fnginx-proxy-lb/lists"}