Provided by: haproxy_2.4.18-1ubuntu1_amd64 bug

NAME

       HAProxy - fast and reliable http reverse proxy and load balancer

SYNOPSIS

       haproxy  -f  <configuration file|dir>  [-L <name>]  [-n maxconn]  [-N maxconn]  [-C <dir>]
       [-v|-vv] [-d] [-D] [-W] [-Ws] [-q] [-V] [-c] [-p <pidfile>] [-dk] [-ds] [-de] [-dp]  [-db]
       [-dM[<byte>]] [-m <megs>] [-x <unix_socket>] [{-sf|-st} pidlist...]

DESCRIPTION

       HAProxy  is  a  TCP/HTTP  reverse proxy which is particularly suited for high availability
       environments. Indeed, it can:
        - route HTTP requests depending on statically assigned cookies ;
        - spread the load among several servers while assuring server
          persistence through the use of HTTP cookies ;
        - switch to backup servers in the event a main one fails ;
        - accept connections to special ports dedicated to service
          monitoring ;
        - stop accepting connections without breaking existing ones ;
        - add/modify/delete HTTP headers both ways ;
        - block requests matching a particular pattern ;
        - hold clients to the right application server depending on
          application cookies
        - report detailed status as HTML pages to authenticated users from an
          URI intercepted from the application.

       It needs very little resource. Its event-driven architecture allows it  to  easily  handle
       thousands  of  simultaneous  connections  on  hundreds  of  instances  without risking the
       system's stability.

OPTIONS

       -f <configuration file|dir>
              Specify configuration file or directory path. If the argument is  a  directory  the
              files  (and only files) it contains are added in lexical order (using LC_COLLATE=C)
              ; only non hidden files with ".cfg" extension are added.

       -L <name>
              Set the local instance's peer name. Peers are defined in  the  peers  configuration
              section  and  used  for  syncing  stick tables between different instances. If this
              option is not specified, the local hostname is used as  peer  name.  This  name  is
              exported  in  the  $HAPROXY_LOCALPEER  environment  variable and can be used in the
              configuration file.

       -n <maxconn>
              Set the high limit for the total number of simultaneous connections.

       -N <maxconn>
              Set the high limit for the per-listener number of simultaneous connections.

       -C <dir>
              Change directory to <dir> before loading any files.

       -v     Display HAProxy's version.

       -vv    Display HAProxy's version and all build options.

       -d     Start in foreground with debugging mode enabled.  When the proxy runs in this mode,
              it dumps every connections, disconnections, timestamps, and HTTP headers to stdout.
              This should NEVER be used in an init script since it will prevent the  system  from
              starting up.

       -D     Start in daemon mode.

       -W     Start in master-worker mode. Could be used either with foreground or daemon mode.

       -Ws    Start  in master-worker mode with systemd notify support. It tells systemd when the
              process is ready. This mode forces foreground.

       -q     Disable messages on output.

       -V     Displays messages on output even when -q or 'quiet' are specified. Some information
              about pollers and config file are displayed during startup.

       -c     Only  checks config file and exits with code 0 if no error was found, or exits with
              code 1 if a syntax error was found.

       -p <pidfile>
              Ask the process to write down each of its children's pids to this  file  in  daemon
              mode  or  ask  the  process  to write down its master's pid to this file in master-
              worker mode.

       -dk    Disable use of kqueue(2). kqueue(2) is available only on BSD systems.

       -dv    Disable use of event ports. Event ports are available only on SunOS systems derived
              from Solaris 10 and later (including illumos systems).

       -ds    Disable  use  of  speculative epoll(7). epoll(7) is available only on Linux 2.6 and
              some custom Linux 2.4 systems.

       -de    Disable use of epoll(7). epoll(7) is available only on Linux 2.6  and  some  custom
              Linux 2.4 systems.

       -dp    Disables use of poll(2). select(2) might be used instead.

       -dS    Disables use of splice(2), which is broken on older kernels.

       -db    Disables  background  mode  (stays  in  foreground,  useful  for  debugging).   For
              debugging, the '-db' option is very useful as it temporarily disables  daemon  mode
              and  multi-process mode. The service can then be stopped by simply pressing Ctrl-C,
              without having to edit the config nor run full debug.

       -dM[<byte>]
              Initializes all allocated memory areas with the given <byte>. This makes it  easier
              to  detect  bugs  resulting  from  uninitialized memory accesses, at the expense of
              touching all allocated memory once. If <byte> is not specified, it defaults to 0x50
              (ASCII 'P').

       -m <megs>
              Enforce a memory usage limit to a maximum of <megs> megabytes.

       -sf <pidlist>
              Send  FINISH  signal  to  the  pids  in  pidlist after startup. The processes which
              receive this signal will wait for all  sessions  to  finish  before  exiting.  This
              option  must  be  specified  last,  followed  by  any  number  of PIDs. Technically
              speaking, SIGTTOU and SIGUSR1 are sent.

       -st <pidlist>
              Send TERMINATE signal to the pids in pidlist after  startup.  The  processes  which
              receive  this  signal will terminate immediately, closing all active sessions. This
              option must be  specified  last,  followed  by  any  number  of  PIDs.  Technically
              speaking, SIGTTOU and SIGTERM are sent.

       -x <unix_socket>
              Attempt  to connect to the unix socket, and retrieve all the listening sockets from
              the old process. Those sockets will then be used if possible instead of binding new
              ones.

       -S <bind>[,<bind options>...]
              In  master-worker mode, create a master CLI. This CLI will enable access to the CLI
              of every worker. Useful for debugging, it's a convenient way of accessing a leaving
              process.

LOGGING

       Since  HAProxy  can  run  inside  a  chroot, it cannot reliably access /dev/log.  For this
       reason, it uses the UDP protocol to send its logs to the server, even if it is  the  local
       server.  People  who  experience  trouble  receiving  logs should ensure that their syslog
       daemon listens to the UDP socket.  Several Linux distributions  which  ship  with  syslogd
       from  the  sysklogd  package have UDP disabled by default. The -r option must be passed to
       the daemon in order to enable UDP.

SIGNALS

       Some signals have a special meaning for the  haproxy  daemon.  Generally,  they  are  used
       between daemons and need not be used by the administrator.

       - SIGUSR1
              Tells  the  daemon to stop all proxies and exit once all sessions are closed. It is
              often referred to as the "soft-stop" signal.

       - SIGUSR2
              In master-worker mode, reloads the configuration and sends a  soft-stop  signal  to
              old processes.

       - SIGTTOU
              Tells the daemon to stop listening to all sockets. Used internally by -sf and -st.

       - SIGTTIN
              Tells  the  daemon  to  restart  listening  to  all  sockets  after a SIGTTOU. Used
              internally when there was a problem during hot reconfiguration.

       - SIGINT and SIGTERM
              Both signals can be used to quickly stop the daemon.

       - SIGHUP
              Dumps the status of all proxies and servers into the logs. Mostly used for trouble-
              shooting purposes.

       - SIGQUIT
              Dumps information about memory pools on stderr. Mostly used for debugging purposes.

       - SIGPIPE
              This signal is intercepted and ignored on systems without MSG_NOSIGNAL.

SEE ALSO

       A  much better documentation can be found in configuration.txt. On Debian systems, you can
       find this file in /usr/share/doc/haproxy/configuration.txt.gz.

AUTHOR

       HAProxy was written by Willy Tarreau. This man page was written by Arnaud Cornet and Willy
       Tarreau.

                                          17 August 2007                               HAPROXY(1)