GitPedia

HAProxy configs

80+ HAProxy Configs for Hadoop, Big Data, NoSQL, Docker, Kubernetes, Elasticsearch, SolrCloud, HBase, MySQL, PostgreSQL, Apache Drill, Hive, Presto, Impala, Hue, ZooKeeper, SSH, RabbitMQ, Redis, Riak, Cloudera, OpenTSDB, InfluxDB, Prometheus, Kibana, Graphite, Rancher etc.

From HariSekhon·Updated April 28, 2026·View on GitHub·

**HAProxy configs** is a 80+ HAProxy Configs for Hadoop, Big Data, NoSQL, Docker, Kubernetes, Elasticsearch, SolrCloud, HBase, MySQL, PostgreSQL, Apache Drill, Hive, Presto, Impala, Hue, ZooKeeper, SSH, RabbitMQ, Redis, Riak, Cloudera, OpenTSDB, InfluxDB, Prometheus, Kibana, Graphite, Rancher etc. The project is written primarily in Shell, distributed under the MIT License license, first published in 2018. Key topics include: apache-drill, cassandra, cloudera, elasticsearch, hacktoberfest.

Advanced HAProxy Configs for Big Data, NoSQL, Web and Infrastructure technologies

GitHub stars
GitHub forks
LineCount
Cocomo
License
My LinkedIn
GitHub Last Commit

Codacy
CodeFactor
Quality Gate Status
Maintainability Rating
Reliability Rating
Security Rating
Vulnerabilities

Linux
Mac
Docker
StarTrack
StarCharts

CI Builds Overview
Jenkins
Concourse
GoCD
TeamCity

CircleCI
BuildKite
AppVeyor
Drone
Codefresh
Cirrus CI
Semaphore
Buddy
Shippable
Travis CI

Azure DevOps Pipeline
GitLab Pipeline
BitBucket Pipeline
AWS CodeBuild
GCP Cloud Build

Repo on GitHub
Repo on GitLab
Repo on BitBucket
Repo on Azure DevOps

ShellCheck
Markdown
Validation
Kics
Grype
Semgrep
Semgrep Cloud
Trivy

GitHub Actions Ubuntu
Mac
Mac 11
Mac 12
Ubuntu
Ubuntu 20.04
Ubuntu 22.04
Debian
Debian 10
Debian 11
Debian 12
Fedora
Alpine
Alpine 3

<!-- Disabled since upstream repos are dead and builds can't succeeed now [![CentOS](https://github.com/HariSekhon/HAProxy-configs/workflows/CentOS/badge.svg)](https://github.com/HariSekhon/HAProxy-configs/actions?query=workflow%3A%22CentOS%22) [![CentOS 7](https://github.com/HariSekhon/HAProxy-configs/workflows/CentOS%207/badge.svg)](https://github.com/HariSekhon/HAProxy-configs/actions?query=workflow%3A%22CentOS+7%22) [![CentOS 8](https://github.com/HariSekhon/HAProxy-configs/workflows/CentOS%208/badge.svg)](https://github.com/HariSekhon/HAProxy-configs/actions?query=workflow%3A%22CentOS+8%22) -->

git.io/haproxy-configs

Advanced HAProxy configurations for Multi-Master, Active-Standby (Hadoop, HBase, Presto) and Peer-to-Peer technologies (Elasticsearch, SolrCloud etc).

Designed both for production-grade High Availability and also to make scripting and monitoring easier when connecting to APIs.

Forked as a submodule from the Advanced Nagios Plugins Collection, these configurations contain specialised Health Checks for each system based on experience and code from the Advanced Nagios Plugins Collection and DevOps Python Tools github repos.

-Recommended to run with High Availability HAProxy using VRRP to create full production-grade High Availability load balancer solutions.*

Hari Sekhon

Cloud & Big Data Contractor, United Kingdom

(ex-Cloudera, former Hortonworks Consultant)

My LinkedIn
<br>(you're welcome to connect with me on LinkedIn)

Features

Each config comes pre-tuned with:

  1. Specialised Health Checks per technology's API
  2. Load Balancing algorithm selected best suited per technology (depending on Active/Passive, Peer-to-Peer etc)
  3. Various buffer sizes, keepalives, connection limits and server retries already tuned (many via shared global config 10-global.cfg)
  4. ACL protections - limits access to private IP addresses - safer by default but easy to disable if you need to serve the internet
  5. Additional logging
  6. Optional Stats Admin UI (excellent for admin, monitoring and debugging - password protected, change the default password from 'test' in 20-stats.cfg if you source that config)

You should use an expert consultant to fine tune to your needs but these should be extremely close to your finished production configurations. In most cases all you need to do is put in your addresses for the backend servers.

Usage

Configurations are split by service in the form of <service>.cfg for mix-and-match convenience and must be combined with 10-global.cfg settings like so:

sh
haproxy -f 10-global.cfg -f elasticsearch.cfg

For multiple services just add those service configurations to the command line options:

sh
haproxy -f 10-global.cfg -f elasticsearch.cfg -f solrcloud.cfg

Some technologies default to the same port number (eg. Ambari and Presto both use port 8080), so if running both on the same HAProxy host then just modify one of the frontend listening port numbers.

If you want to add a Stats Admin UI then include the 20-stats.cfg configuration (remember to change the default password test):

sh
haproxy -f 10-global.cfg -f 20-stats.cfg -f elasticsearch.cfg ...

Shortcut

To shorten the command line you can simply use the run.sh script instead:

sh
./run.sh elasticsearch.cfg

and easily with multiple configs

sh
./run.sh elasticsearch.cfg solrcloud.cfg ...

Backend Server Addresses (set these to your cluster hosts)

In most cases all you'll need to do is add your server addresses in to the backend config and then start HAProxy.

Common backend server addresses have been pre-populated for convenience including:

  • <service> - generic service name matching the proxied technology - could be resolved by DNS to multiple IPs to be balanced across
  • 192.168.99.100 - the common Docker Machine / MiniKube / MiniShift IP address
  • docker - convenient to use DNS or /etc/hosts to point this to your Docker host

These addresses are used in Continuous Integration tests run on this repo from the Advanced Nagios Plugins Collection.

More Configs

See the untested/ directory for a few more including SSL config versions I haven't got round to testing yet but should work.

Tests

Forked as a submodule from the Advanced Nagios Plugins Collection. These HAProxy configs are tested against Docker containers as part of CI tests in that repo.

Star History

Star History Chart

git.io/haproxy-configs

More Core Repos

<!-- OTHER_REPOS_START -->

Knowledge

Knowledge-Base
Diagrams-as-Code

<!-- Not support on GitHub Markdown: <iframe src="https://raw.githubusercontent.com/HariSekhon/HariSekhon/main/knowledge.md" width="100%" height="500px"></iframe> Does nothing: <embed src="https://raw.githubusercontent.com/HariSekhon/HariSekhon/main/knowledge.md" width="100%" height="500px" /> -->

DevOps Code

DevOps-Bash-tools
DevOps-Python-tools
DevOps-Perl-tools
DevOps-Golang-tools

<!-- [![Gist Card](https://github-readme-stats-fast.vercel.app/api/gist?id=f8f551332440f1ca8897ff010e363e03)](https://gist.github.com/HariSekhon/f8f551332440f1ca8897ff010e363e03) -->

Containerization

Kubernetes-configs
Dockerfiles

CI/CD

GitHub-Actions
Jenkins

Databases - DBA - SQL

SQL-scripts

DevOps Reloaded

HAProxy-configs
Terraform
Packer
Ansible
Environments

Monitoring

Nagios-Plugins
Nagios-Plugin-Kafka
Prometheus

Templates

Templates
Template-repo

Desktop

TamperMonkey
Hammerspoon
MPV-Scripts

Spotify

Spotify-tools
Spotify-playlists

The rest of my original source repos are
here.

Pre-built Docker images are available on my DockerHub
and can be re-generated using the my Dockerfiles repo.

<!-- OTHER_REPOS_END -->

Contributors

Showing top 1 contributor by commit count.

View all contributors on GitHub →

This article is auto-generated from HariSekhon/HAProxy-configs via the GitHub API.Last fetched: 6/20/2026