diff --git a/haproxy.sh b/haproxy.sh new file mode 100644 index 0000000..c13e4a2 --- /dev/null +++ b/haproxy.sh @@ -0,0 +1,90 @@ +#!/bin/bash + +echo "#--------------------------------------------------------------------- +# Example configuration for a possible web application. See the +# full configuration options online. +# +# http://haproxy.1wt.eu/download/1.4/doc/configuration.txt +# +#--------------------------------------------------------------------- + +#--------------------------------------------------------------------- +# Global settings +#--------------------------------------------------------------------- +global + # to have these messages end up in /var/log/haproxy.log you will + # need to: + # + # 1) configure syslog to accept network log events. This is done + # by adding the '-r' option to the SYSLOGD_OPTIONS in + # /etc/sysconfig/syslog + # + # 2) configure local2 events to go to the /var/log/haproxy.log + # file. A line like the following can be added to + # /etc/sysconfig/syslog + # + # local2.* /var/log/haproxy.log + # + log 127.0.0.1 local2 + + chroot /var/lib/haproxy + pidfile /var/run/haproxy.pid + maxconn 4000 + user haproxy + group haproxy + daemon + + # turn on stats unix socket + stats socket /var/lib/haproxy/stats + +#--------------------------------------------------------------------- +# common defaults that all the 'listen' and 'backend' sections will +# use if not designated in their block +#--------------------------------------------------------------------- +defaults + mode http + log global + option httplog + option dontlognull + option http-server-close + option forwardfor except 127.0.0.0/8 + option redispatch + retries 3 + timeout http-request 10s + timeout queue 1m + timeout connect 10s + timeout client 1m + timeout server 1m + timeout http-keep-alive 10s + timeout check 10s + maxconn 3000 + +#--------------------------------------------------------------------- +# main frontend which proxys to the backends +#--------------------------------------------------------------------- + +frontend www-http + bind *:80 + option forwardfor + option http-server-close + reqadd X-Forwarded-Proto:\ http + + acl url_admin path_beg -i /wp-admin /wp-login.php + acl url_admin hdr(Cookie) core-backend + use_backend core-backend if url_admin + http-response set-header X-Server-Node %s + default_backend dual-backend + +backend core-backend + server mysite1 backend1.floss.my.id:80 check + +backend dual-backend + server mysite1 backend1.floss.my.id:80 check; + server mysite2 backend1.floss.my.id:80 check;" > /etc/haproxy/haproxy.cfg; + +systemctl restart haproxy; +systemctl status haproxy; +echo ""; +echo ""; + +echo "Make sure if HAProxy service is running !";