# Basic config mapping a listening IP:port to another host's IP:port with
# support for HTTP/1 and 2.

global
   strict-limits  # refuse to start if insufficient FDs/memory
   # add some process-wide tuning here if required

   # A stats socket may be added to check live metrics if the load generators
   # do not report them.
   #    stats socket /tmp/haproxy.sock level admin
   #    stats timeout 1h

defaults
   mode http
   balance random      # power-of-two-choices
   timeout client 60s
   timeout server 60s
   timeout connect 1s

listen p
   # this is the address and port we'll listen to, the ones to aim the
   # load generators at
   bind :8000

   # create a certificate and uncomment this for SSL
   # bind :8443 ssl crt my-cert.pem alpn h2,http/1.1

   # Put the server's IP address and port below
   server s1 172.31.32.33:8000
