# Haproxy example config written by imjoey
# copyright imjoey
# MIT licensed
global
maxconn 4096
nbproc 1
debug
daemon
log 127.0.0.1 local0
defaults
mode http
option httplog
log global
userlist L1
group G1 users tiger,scott
group G2 users xdb,sc
user tiger password $6$k6y3o.eP$JlKBx9za9667qe4(...)xHSwRv6J.C0/D7cV91
user scott insecure-password elgato
user xdb insecure-password hello
userlist L2
group G1
group G2
user tiger password $6$k6y3o.eP$JlKBx(...)xHSwRv6J.C0/D7cV91 groups G1
user scott insecure-password elgato groups G1,G2
user xdb insecure-password hello groups G2
frontend unsecured *:80
timeout client 86400000
mode http
option httpclose
option forwardfor #forward’s clients IP to app
bind-process odd
#catch all domains that begin with 'www.'
acl host_www1 hdr_beg(host) -i www.
reqirep ^Host:\ www.(.*)$ Host:\ \1 if host_www
redirect code 301 prefix / if host_www
# Define hosts
acl host_niftykick hdr(host) -i niftykick.com
acl host_chatleap hdr(host) -i chatleap.com
acl host_trevordev hdr(host) -i trevordev.com
acl host_jokeydoke hdr(host) -i jokeydoke.com
acl host_swiftnifty hdr(host) -i swiftnifty.trevordev.com
#redirect to https
redirect prefix https://niftykick.com code 301 if host_niftykick
## figure out which one to use
use_backend niftykick if host_niftykick
use_backend chatleap if host_chatleap
use_backend trevordev if host_trevordev
use_backend swiftnifty if host_swiftnifty
use_backend jokeydoke if host_jokeydoke
default_backend devbrick
frontend secured
timeout client 86400000
mode http
option httpclose
option forwardfor
#catch all domains that begin with 'www.'
acl host_www2 hdr_beg(host) -i www.
reqirep ^Host:\ www.(.*)$ Host:\ \1 if host_www
redirect code 301 prefix / if host_www
acl host_coyote path_beg /fileServer/
acl host_niftykick hdr(host) -i niftykick.com
bind 0.0.0.0:443 ssl crt /etc/haproxy/niftykickCert.pem
use_backend fileServer if host_coyote
use_backend niftykick if host_niftykick
backend devbrick
mode http
option forwardfor #this sets X-Forwarded-For
timeout server 30000
timeout connect 4000
server server1 localhost:3000 weight 1 maxconn 1024 check
backend chatleap
mode http
option forwardfor #this sets X-Forwarded-For
timeout server 30000
timeout connect 4000
server server1 localhost:3001 weight 1 maxconn 1024 check
backend jokeydoke
mode http
option forwardfor #this sets X-Forwarded-For
timeout server 30000
timeout connect 4000
server server1 localhost:3002 weight 1 maxconn 1024 check
backend trevordev
mode http
option forwardfor #this sets X-Forwarded-For
timeout server 30000
timeout connect 4000
server server1 localhost:3003 weight 1 maxconn 1024 check
backend niftykick
mode http
option forwardfor #this sets X-Forwarded-For
timeout server 30000
timeout connect 4000
server server1 localhost:3005 weight 1 maxconn 1024 check
backend fileServer
mode http
option forwardfor #this sets X-Forwarded-For
timeout server 30000
timeout connect 4000
reqrep ^([^\ :]*)\ /fileServer/(.*) \1\ /\2
server server1 localhost:3008 weight 1 maxconn 1024 check
backend swiftnifty
mode http
option forwardfor #this sets X-Forwarded-For
timeout server 30000
timeout connect 4000
server server1 localhost:3007 weight 1 maxconn 1024 check