HAProxy ALOHA Documentation 15.5

L4 Farm

A farm is a container for real servers. The contained servers must have the same role and deliver the same service.

Farm attributes and options define the session behavior on the server side of the load balancer, such as how to check, dispatch connections, connect, forward data, and maintain sessions to real servers.

Farms are identified by a name; allowed characters include alpha-numeric, dot, dash, and underscore.

The available farm attributes are listed below:

balance

  • Definition: Load balancing algorithm used to dispatch new connections on real servers.

  • Type: enum

  • Default value: roundrobin

Value

Description

roundrobin

Each server is used in turn according to their weights.

least-connections

The new connection is affected to the server with the lowest number of connections.

hash-source

The source IP address is hashed and divided by the total weight of the running servers to designate which server will receive the request. This ensures that the same client IP address will always reach the same server as long as no server goes down or up.

hash-destination

Assigns jobs to servers through looking up a statically assigned hash table based on destination IP addresses

hash-source-dest

Assigns jobs to servers through looking up a statically assigned hash table based on both source and destination IP addresses

shortest-expected-delay

Assign an incoming job to the server with the shortest expected delay

never-queue

Assign an incoming job to an idle server if there is one instead of waiting for a fast one; if all the servers are busy, it adopts the Shortest Expected Delay policy to assign the job

mode

  • Definition: Deployment mode

  • Type: enum

  • Default value: Destination IP masquerading

Value

Description

gateway

Direct routing or direct server return (DSR) mode

nat

Destination IP masquerading (Network Address Translation, or NAT)

tunnel

ipip encapsulation (tunneling)

persistence

  • Definition: If this option is enabled, multiple requests from a client (same source IP) are redirected to the same real server selected for the first request. This option may be used in conjunction with protocols such as SSL or FTP where it is important that clients consistently connect with the same real server.

  • Type: enum

  • Default value: Persistence is disabled

Value

Description

enabled

persistence is enabled

persistence-timeout

  • Definition: Value in seconds specify how long sessions are kept persistence load balance table.

  • Type: integer

  • Default value: 300 seconds

persistence-netmask

  • Definition: Specify the granularity of persistence

  • Type: ip

  • Default value: 255.255.255.255

service-address

  • Definition: IP address on which to intercept traffic

  • Type: ip

  • Default value: no interception

service-port

  • Definition: network port to intercept traffic on

  • Type: port

  • Default value: all ports for the service-address are intercepted

  • Particular value: 0 means interception of all ports

service-protocol

  • Definition: layer 4 protocol (udp or tcp) to intercept

  • Type: enum

  • Default value: tcp is intercepted

Value

Description

tcp

intercept tcp

udp

intercept udp

check-interval

  • Definition: Interval between two consecutive server health checks in seconds

  • Type: integer

  • Default value: 10

check-port

  • Definition: Destination TCP port used to perform health check

  • Type: integer

  • Default value: Server port is used

check-timeout

  • Definition: Additional health check timeout, starts after the connection has been established on the server

  • Type: integer

  • Default value: check-interval/2

check-source

  • Definition: Source IP address to use when performing health checks

  • Type: ip

  • Default value: First load balancer interface address is used

adv-check

  • Definition: Advanced health check method

  • Type: enum

  • Default value: icmp

Value

Description

http

Use an http request health checks for server testing, If http status code 200 is returned, check is successful

tcp

Perform a tcp connect. If connect accepted, check is successful

icmp

process an icmp echo to server, if echo reply received, check is successful

adv-check-http-uri

  • Definition: Requested URI for HTTP health check

  • Type: string

  • Default value: /

adv-check-http-status-code

  • Definition: HTTP status code value to consider check successful

  • Type: integer

  • Default value: 200


Next up

L4 Server