From 04e6105b65b01d9f2df7b47de8ab0ab83fc5dcb6 Mon Sep 17 00:00:00 2001 From: kev Date: Wed, 15 Jun 2016 11:08:00 +0800 Subject: [PATCH] add haproxy --- README.md | 2 ++ haproxy/README.md | 58 ++++++++++++++++++++++++++++++++++ haproxy/arm/Dockerfile | 10 ++++++ haproxy/arm/docker-compose.yml | 6 ++++ haproxy/arm/haproxy.cfg | 27 ++++++++++++++++ haproxy/docker-compose.yml | 6 ++++ haproxy/haproxy.cfg | 27 ++++++++++++++++ 7 files changed, 136 insertions(+) create mode 100644 haproxy/README.md create mode 100644 haproxy/arm/Dockerfile create mode 100644 haproxy/arm/docker-compose.yml create mode 100644 haproxy/arm/haproxy.cfg create mode 100644 haproxy/docker-compose.yml create mode 100644 haproxy/haproxy.cfg diff --git a/README.md b/README.md index 8ecb4d6..2aeefdb 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@ A collection of delicious docker recipes. - [x] grafana - [x] grafana-arm - [x] h2o +- [x] haproxy-arm - [x] httpbin :+1: - [x] hubot - [x] hugo @@ -141,6 +142,7 @@ A collection of delicious docker recipes. - [ ] gliderlabs/logspout - [x] gliderlabs/registrator - [x] gogs :cn: +- [x] haproxy - [x] jazzdd/phpvirtualbox - [x] jenkins - [x] jupyter/notebook diff --git a/haproxy/README.md b/haproxy/README.md new file mode 100644 index 0000000..cb83824 --- /dev/null +++ b/haproxy/README.md @@ -0,0 +1,58 @@ +haproxy +======= + +![](https://badge.imagelayers.io/library/haproxy:alpine.svg) + +[HAProxy][1] is a free, open source high availability solution, providing load +balancing and proxying for TCP and HTTP-based applications by spreading +requests across multiple servers. + +## docker-compose.yml + +```yaml +haproxy: + image: haproxy:alpine + volumes: + - ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg + net: host + restart: always +``` + +## haproxy.cfg + +This sample config shows you how to setup a simple tcp load balancer. + +``` +# +- jp (:1081) +# | +# |- tw (:1082) +# frontend --- backend -+ +# (*:1080) |- hk (:1083) +# | +# +- us (:1084) + +global + # daemon # WARNING: DO NOT USE IT! + maxconn 4000 + +defaults + mode tcp + timeout connect 5000ms + timeout client 50000ms + timeout server 50000ms + +frontend front + bind *:1080 + default_backend back + +backend back + balance roundrobin + server jp 127.0.0.1:1081 weight 50 + server tw 127.0.0.1:1082 weight 20 + server hk 127.0.0.1:1083 weight 15 + server us 127.0.0.1:1084 weight 15 +``` + +> :warning: haproxy must not be daemonized! + +[1]: http://www.haproxy.org/ diff --git a/haproxy/arm/Dockerfile b/haproxy/arm/Dockerfile new file mode 100644 index 0000000..2ca03ed --- /dev/null +++ b/haproxy/arm/Dockerfile @@ -0,0 +1,10 @@ +# +# Dockerfile for haproxy-arm +# + +FROM easypi/alpine-arm +MAINTAINER EasyPi Software Foundation + +RUN apk add --no-cache haproxy + +CMD ["haproxy", "-f", "/etc/haproxy/haproxy.cfg"] diff --git a/haproxy/arm/docker-compose.yml b/haproxy/arm/docker-compose.yml new file mode 100644 index 0000000..3001a60 --- /dev/null +++ b/haproxy/arm/docker-compose.yml @@ -0,0 +1,6 @@ +haproxy: + image: easypi/haproxy-arm + volumes: + - ./haproxy.cfg:/etc/haproxy/haproxy.cfg + net: host + restart: always diff --git a/haproxy/arm/haproxy.cfg b/haproxy/arm/haproxy.cfg new file mode 100644 index 0000000..37f7fc2 --- /dev/null +++ b/haproxy/arm/haproxy.cfg @@ -0,0 +1,27 @@ +# +- jp (:1081) +# | +# |- tw (:1082) +# frontend --- backend -+ +# (*:1080) |- hk (:1083) +# | +# +- us (:1084) + +global + maxconn 4000 + +defaults + mode tcp + timeout connect 5000ms + timeout client 50000ms + timeout server 50000ms + +frontend front + bind *:1080 + default_backend back + +backend back + balance roundrobin + server jp 127.0.0.1:1081 weight 50 + server tw 127.0.0.1:1082 weight 20 + server hk 127.0.0.1:1083 weight 15 + server us 127.0.0.1:1084 weight 15 diff --git a/haproxy/docker-compose.yml b/haproxy/docker-compose.yml new file mode 100644 index 0000000..55841d1 --- /dev/null +++ b/haproxy/docker-compose.yml @@ -0,0 +1,6 @@ +haproxy: + image: haproxy:alpine + volumes: + - ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg + net: host + restart: always diff --git a/haproxy/haproxy.cfg b/haproxy/haproxy.cfg new file mode 100644 index 0000000..37f7fc2 --- /dev/null +++ b/haproxy/haproxy.cfg @@ -0,0 +1,27 @@ +# +- jp (:1081) +# | +# |- tw (:1082) +# frontend --- backend -+ +# (*:1080) |- hk (:1083) +# | +# +- us (:1084) + +global + maxconn 4000 + +defaults + mode tcp + timeout connect 5000ms + timeout client 50000ms + timeout server 50000ms + +frontend front + bind *:1080 + default_backend back + +backend back + balance roundrobin + server jp 127.0.0.1:1081 weight 50 + server tw 127.0.0.1:1082 weight 20 + server hk 127.0.0.1:1083 weight 15 + server us 127.0.0.1:1084 weight 15