oracular (1) haproxy.1.gz

Provided by: haproxy_2.9.10-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)