Public | Automated Build

Last pushed: 5 days ago
Short Description
Fully customisable HAProxy load balancer built on CentOS-7 (HTTP2 with ALNP) see tags.
Full Description

HAProxy Load Balancer





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

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:1.8.4

Features

  • Support for HTTP/2 with ALPN
  • CentOS 7 based
  • 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

Variable Default Settings Notes
HAPROXY_CONFIG /etc/haproxy/haproxy.cfg If you mount your config to different location, simply edit it.
HAPROXY_PORTS 80,443 Comma separated ports
HAPROXY_ADDITIONAL_CONFIG Empty List of file that inotify should monitor for changes divided by space. Example below. Space separated
HAPROXY_PRE_RESTART_CMD Empty Command to execute before restarting haproxy
HAPROXY_POST_RESTART_CMD Empty Command to execute after successfully restarting haproxy

Usage

Basic

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

Mount custom config , override some options

docker run -d \
  --cap-add NET_ADMIN \
  -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 \
  --cap-add NET_ADMIN \
  -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)

Docker Pull Command
Owner
million12
Source Repository