Skip to content

Instantly share code, notes, and snippets.

@jeka-kiselyov
Last active August 16, 2018 04:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save jeka-kiselyov/75837f71121f8a9f993ed148ae9e505e to your computer and use it in GitHub Desktop.
Save jeka-kiselyov/75837f71121f8a9f993ed148ae9e505e to your computer and use it in GitHub Desktop.
Haproxy 1.6 node server balancer on Ubuntu, works on aws
sudo add-apt-repository ppa:vbernat/haproxy-1.6
sudo apt-get update
sudo apt-get install haproxy
# restart service
sudo service haproxy restart
# configuration file
sudo nano /etc/haproxy/haproxy.cfg
# check configuration file for alerts
haproxy -c -V -f /etc/haproxy/haproxy.cfg
# don't forget to remove any ubuntu port forwarding (usually in defined in /etc/rc.local)
# add node server to autoloading:
crontab -e
# add:
@reboot PORT=9090 forever start /home/ubuntu/app/index.js
@reboot PORT=9091 forever start /home/ubuntu/app/index.js
@reboot PORT=9092 forever start /home/ubuntu/app/index.js
frontend localnodes
bind *:443 ssl crt /home/ubuntu/cert.pem no-sslv3
acl secure dst_port eq 443
mode tcp
default_backend nodes
backend nodes
mode tcp
balance roundrobin
option httpchk GET / HTTP/1.1\r\nHost:localhost
server web01 127.0.0.1:9090 check
server web02 127.0.0.1:9091 check
server web03 127.0.0.1:9092 check
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
user haproxy
group haproxy
daemon
ssl-default-bind-ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EEC$
ssl-default-bind-options no-sslv3 no-tlsv10
tune.ssl.default-dh-param 4096
defaults
log global
mode http
option httplog
option dontlognull
contimeout 5000
clitimeout 50000
srvtimeout 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
listen stats
bind *:1936
mode http
balance
timeout client 5000
timeout connect 4000
timeout server 30000
#This is the virtual URL to access the stats page
stats uri /haproxy_stats
stats auth admin:password
#This allows you to take down and bring up back end servers.
#This will produce an error on older versions of HAProxy.
stats admin if TRUE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment