-
Notifications
You must be signed in to change notification settings - Fork 217
HAProxy
igrigorik edited this page Aug 3, 2011
·
2 revisions
A simple, sample HAProxy config file for routing incoming requests to multiple goliath app servers: several app servers per API, and multiple API’s on the same, or multiple machines. For more details on the Haproxy syntax, please read the configuration documentation. Otherwise, the config file should be self-explanatory:
global
pidfile /var/run/haproxy.pid
log 127.0.0.1 local0 info
defaults
mode http
clitimeout 600000 # maximum inactivity time on the client side
srvtimeout 600000 # maximum inactivity time on the server side
timeout connect 8000 # maximum time to wait for a connection attempt to a server to succeed
stats enable
stats auth admin:password
stats uri /monitor
stats refresh 5s
option httpchk GET /status
retries 5
option redispatch
errorfile 503 /path/to/503.text.file
balance roundrobin # each server is used in turns, according to assigned weight
frontend http
bind :80
monitor-uri /haproxy # end point to monitor HAProxy status (returns 200)
acl api1 path_reg ^/api1/?
acl api2 path_reg ^/api2/?
use_backend api1 if api1
use_backend api2 if api2
backend api1
# option httpclose
server srv0 127.0.0.1:9000 weight 1 maxconn 100 check inter 4000
server srv1 127.0.0.1:9001 weight 1 maxconn 100 check inter 4000
server srv2 127.0.0.1:9002 weight 1 maxconn 100 check inter 4000
backend api2
option httpclose
server srv01 127.0.0.1:8000 weight 1 maxconn 50 check inter 4000