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 todocker run
will be passed directly tohaproxy
command.
For example, if you rundocker 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)