Skip to content

Repository files navigation

HAProxy Load Balancer

Build & Test HAProxy
GitHub Open Issues
StarsFork
Release

Docker build

Felling like supporting me in my projects use donate button. Thank You!
PayPal

HAProxy docker container million12/haproxy with ALPN and HTTP/2 support.

Tags

Please specify tag when deploying for specific version. Example:

million12/haproxy:latest
million12/haproxy:2.1.5

Features

  • Support for HTTP/2 with ALPN
  • RockyLinux based (migrated at 2.4.16)
  • Ability to provide any arguments to haproxy process Any extra parameters provided to docker run will be passed directly to haproxy command. For example, if you run docker run [run options] million12/haproxy -n 1000 you pass -n 1000 to haproxy daemon.
  • Pretty lightweight, only ~100M (with OpenSSL and HAProxy compiled from source).
  • Default haproxy.cfg provided for demonstration purposes. You can easily mount your own or point to different location using HAPROXY_CONFIG env.
  • Auto restart when config changes This container comes with inotify to monitor changes in HAProxy config and reload HAProxy daemon. The reload is done in a way that no connection is lost.

ENV variables

VariableDefault SettingsNotes
HAPROXY_CONFIG/etc/haproxy/haproxy.cfgIf you mount your config to different location, simply edit it.
HAPROXY_PORTS80,443Comma separated ports
HAPROXY_ADDITIONAL_CONFIGEmptyList of file that inotify should monitor for changes divided by space. Example below. Space separated
HAPROXY_PRE_RESTART_CMDEmptyCommand to execute before restarting haproxy
HAPROXY_POST_RESTART_CMDEmptyCommand to execute after successfully restarting haproxy

Usage

Basic

docker run -ti \
-p 80:80 \
-p 443:443 \
million12/haproxy

Mount custom config , override some options

docker run -d \
-p 80:80 \
-v /my-haproxy.cfg:/etc/haproxy/haproxy.cfg \
million12/haproxy \
-n 10000

Note: in this case config is mounted to its default location, so you don't need to modify HAPROXY_CONFIG variable.

Monitor additional config files

docker run -d \
-p 80:80 \
-e HAPROXY_ADDITIONAL_CONFIG='/etc/haproxy/custom1 /etc/haproxy/custom2' \
million12/haproxy

Check version and build options

docker run -ti million12/haproxy -vv

Stats

The default URL for stats is http://CONTAINER_IP/admin?stats with username:password ser to admin:admin.


Authors

Author: Marcin ryzy Ryzycki (marcin@m12.io)
Author: Przemyslaw Ozgo (linux@ozgo.info)

About

Fully customisable HAProxy load balancer with HTTP/2 and ALPN support. Built on CentOS-7.

Resources

Stars

103 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages