1. Advertising
    y u no do it?

    Advertising (learn more)

    Advertise virtually anything here, with CPM banner ads, CPM email ads and CPC contextual links. You can target relevant areas of the site and show ads based on geographical location of the user if you wish.

    Starts at just $1 per CPM or $0.10 per CPC.

Installing Haproxy For Load Balancing And Protecting Apache

Discussion in 'Security' started by Bullten Webhosting, Dec 1, 2011.

  1. #1
    HAProxy is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications. It is particularly suited for web sites crawling under very high loads while needing persistence or Layer7 processing. Supporting tens of thousands of connections is clearly realistic with today’s hardware. Its mode of operation makes its integration into existing architectures very easy and risk less, while still offering the possibility not to expose fragile web servers to the Net You can read more here:- http://haproxy.1wt.eu/#desc

    Installing HAProxy:-
    You can check for the latest version here:- http://haproxy.1wt.eu/#down
    At present 1.5 is in development phase 7 and we are going to use that

    Note: The configuration file we have used is for single server Protection not for multiple server and made by its owner Willy Tarreau

    First:-
    wget http://haproxy.1wt.eu/download/1.5/src/devel/haproxy-1.5-dev7.tar.gz
    tar xvfz haproxy-1.5-dev7.tar.gz
    $ cd haproxy-1.5-dev7

    Second:-
    Now we have to compile the installation file, we are taking example of centost OS make install

    Third:-
    Now make a new directory and copy haproxy configuration file there
    mkdir /etc/haproxy
    cd /etc/haproxy
    vi haproxy.cfg

    change the ip address below and copy it to haproxy.cfg
    —————————————————————–
    global
    daemon
    maxconn 20000 # count about 1 GB per 20000 connections
    pidfile /var/run/haproxy.pid
    stats socket /var/run/haproxy.stat mode 600
    defaults
    mode http
    maxconn 19500 # Should be slightly smaller than global.maxconn.
    timeout client 60s # Client and server timeout must match the longest
    timeout server 60s # time we may wait for a response from the server.
    timeout queue 60s # Don’t queue requests too long if saturated.
    timeout connect 4s # There’s no reason to change this one.
    timeout http-request 5s # A complete request may never take that long.
    # Uncomment the following one to protect against nkiller2. But warning!
    # some slow clients might sometimes receive truncated data if last
    # segment is lost and never retransmitted :
    # option nolinger
    option http-server-close
    option abortonclose
    balance roundrobin
    option forwardfor # set the client’s IP in X-Forwarded-For.
    option tcp-smart-accept
    option tcp-smart-connect
    retries 2
    frontend public
    bind 192.168.1.1:80
    bind 192.168.1.2:80
    bind 192.168.1.3:80
    bind 192.168.1.4:80
    # table used to store behaviour of source IPs
    stick-table type ip size 200k expire 5m store gpc0,conn_rate(10s)
    # IPs that have gpc0 > 0 are blocked until the go away for at least 5 minutes
    acl source_is_abuser src_get_gpc0 gt 0
    tcp-request connection reject if source_is_abuser
    # connection rate abuses get blocked
    acl conn_rate_abuse sc1_conn_rate gt 30
    acl mark_as_abuser sc1_inc_gpc0 gt 0
    tcp-request connection track-sc1 src
    tcp-request connection reject if conn_rate_abuse mark_as_abuser
    default_backend apache
    backend apache
    # set the maxconn parameter below to match Apache’s MaxClients minus
    # one or two connections so that you can still directly connect to it.
    stats uri /haproxy?stats
    server srv 0.0.0.0:8181 maxconn 254
    # Enable the stats page on a dedicated port (8888). Monitoring request errors
    # on the frontend will tell us how many potential attacks were blocked.
    listen stats
    # Uncomment “disabled” below to disable the stats page :
    # disabled
    bind :8811
    stats uri /
    ——————————————————————

    In the above file replace 192.168.1.1 to 192.168.1.4 with your server ip address.

    Fourth:
    Change your Apache port to 8181 as in configuration file we are using that server srv 0.0.0.0:8181 maxconn 254.In WHM goto Tweak Settings and find Apache non-SSL IP/port and change it to 8181.
    Fifth:
    Restart apache
    /etc/init.d/apache2 restart

    Last:
    Start haproxy
    haproxy -f /etc/haproxy/haproxy.cfg

    Now we have to check if its working. Go to your stats page to see
    serverip:8811

    Replace serverip with your server ip used in configuration file and you will see full result generated by haproxy
    If you are facing any issue then feel free to contact us

    Article Soruce:- http://www.bullten.com/installing-haproxy-for-anonymous-attacks-and-load-balancing/
     
    Bullten Webhosting, Dec 1, 2011 IP
  2. JamesZach

    JamesZach Peon

    Messages:
    12
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #2
    What solution was used to keep the data replicated across the load balancing servers?
     
    JamesZach, Dec 5, 2011 IP
  3. adimsh

    adimsh Member

    Messages:
    25
    Likes Received:
    1
    Best Answers:
    1
    Trophy Points:
    48
    #3
    @Bullten nice sharing, thanks, but when I checked 1 year ago, HAProxy was not fully supporting HTTP/1.1, Nginx does that is why I prefer it.

    @JamesZach it differs according to the data type, MySQL, files, web-sessions, ....
     
    adimsh, Dec 5, 2011 IP
  4. Bullten Webhosting

    Bullten Webhosting Peon

    Messages:
    28
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #4
    the owner of this software worked alot and he is updating haproxy very often. I say this software will give equal competition to nginix
     
    Bullten Webhosting, Dec 5, 2011 IP
  5. Bullten Webhosting

    Bullten Webhosting Peon

    Messages:
    28
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #5
    well its databse server
     
    Bullten Webhosting, Dec 5, 2011 IP