web server load balancer

21
HAProxy Load Balancer

Upload: mobme-technical

Post on 06-Dec-2014

7.172 views

Category:

Technology


0 download

DESCRIPTION

HAProxy Load Balancer,

TRANSCRIPT

Page 1: Web Server Load Balancer

HAProxy Load Balancer

Page 2: Web Server Load Balancer

Introduction

Load Balancing is a technique to spread work between two or more computers, network links, CPUs, hard drives, or other resources, in order to get optimal resource utilization, maximize throughput, and minimize response time.

Load balancer is a tool that directs a client to the least busy or most appropriate Web server among several servers that contain mirrored contents.

Page 3: Web Server Load Balancer

Why is load balancing of servers needed?

The web server may not be able to handle high volumes of incoming traffic.

The users will have to wait until the web server is free to process their requests.

There may be a situation where upgrading the server hardware will no longer be cost effective.

Page 4: Web Server Load Balancer

Load-balancing techniques

Three types of load balancers exist:Hardware appliancesNetwork switchesSoftware

Page 5: Web Server Load Balancer

Load-balancing techniques

A hardware appliance-based load balancer is a closed box.

A network switch-based load balancer uses a Layer2 or Layer3 switch to integrate the load-balancing service.

A software load balancer is software which you can install on a dedicated server.

Page 6: Web Server Load Balancer

How to achive load balancing?

More servers need to be added to distribute the load among the group of servers, which is also known as a server cluster.

The load distribution among these servers is known as load balancing.

Load balancing applies to all types of servers (application server, database server).

Page 7: Web Server Load Balancer

Software Load Balancers

1.Haproxy2.Pure Load Balancer (PLB)3.Perlbal4.Pound5.Pen

Page 8: Web Server Load Balancer

Haproxy Load Balancer

HAProxy is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications.

Page 9: Web Server Load Balancer

Installation

$ apt-get install haproxyDownload the HAProxy (http://haproxy.1wt.eu/#down)

Untar the downloaded file.$ ./configure$ make$ make install

Page 10: Web Server Load Balancer

HAProxy Status

Page 11: Web Server Load Balancer

Examples

http://www.mobshare.in

Page 12: Web Server Load Balancer

listen webfarm 192.168.1.1:80 mode http balance roundrobin cookie SERVERID insert indirect option httpchk HEAD /index.html HTTP/1.0 server webA 192.168.1.11:80 cookie A check server webB 192.168.1.12:80 cookie B check port 81 inter 2000 server webC 192.168.1.13:80 cookie C check server webD 192.168.1.14:80 cookie D check server bkpA 192.168.1.15:80 cookie A check backup server bkpB 192.168.1.16:80 cookie B check backup

http://www.mobshare.in

Page 13: Web Server Load Balancer

http://www.mobshare.in

Updating...

503 Service UnavailableNo server is available to

handle this request.

Page 14: Web Server Load Balancer

Load balancing algorithms

round-robin: requests are rotated among the servers.

leastconn: the request is sent to the server with the lowest number of connections.

source: a hash of the source IP is divided by the total weight of the running servers to determine which server will receive the request.

Page 15: Web Server Load Balancer

Load balancing algorithms...

uri: the part of the URL up to a question mark is hashed and used to choose a server that will handle the request.

url_param: can be used to check certain parts of the URL, for example values sent via POST requests; for example a request which specifies a user_id parameter with a certain value can get directed to the same server using the url_param method.

Page 16: Web Server Load Balancer

Basic Configuration

The configuration file haproxy.cfg is segmented in sections. global section listen section default section

OR global section default section frontend section backend sections

Page 17: Web Server Load Balancer

Global Section Example

global daemon quiet nbproc 2 pidfile /var/run/haproxy-private.pid

user haproxy group public

Page 18: Web Server Load Balancer

Default Section Example

defaults log global mode http option httplog option forwardfor

Page 19: Web Server Load Balancer

Listen Section Example

listen webfarm 192.168.1.1:80 mode http balance roundrobin cookie SERVERID insert indirect option httpchk HEAD /index.html HTTP/1.0 server webA 192.168.1.11:80 cookie A check server webB 192.168.1.12:80 cookie B check server webC 192.168.1.13:80 cookie C check server webD 192.168.1.14:80 cookie D check

Page 20: Web Server Load Balancer

Frontend Section Example

frontend myfrontend *:80log globalmaxconn 25000option forwardforacl acl_example1 url_sub example1acl acl_example2 url_sub example2use_backend example1_farm if acl_example1use_backend example2_farm if acl_example2default_backend default_farm

Page 21: Web Server Load Balancer

Backend Sections Example

backend example1_farmmode httpbalance roundrobinserver server1 192.168.1.1:80 checkserver server2 192.168.1.2:80 check

backend example2_farmmode httpbalance roundrobinserver server3 10.0.0.3:80 checkserver server4 10.0.0.4:80 check

backend default_farmmode httpbalance roundrobinserver server5 192.168.1.5:80 checkserver server6 192.168.1.6:80 check