HAPROXY(1)                 OpenBSD Reference Manual                 HAPROXY(1)



NAME
       HAProxy - fast and reliable http reverse proxy and load balancer


SYNOPSIS
       haproxy -f <configuration file> [-n maxconn] [-N maxconn] [-d] [-D]
       [-q] [-V] [-c] [-p <pidfile>] [-s] [-l] [-dk] [-ds] [-de] [-dp] [-db]
       [-m <megs>] [{-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>
              Specify configuration file path.


       -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.


       -d     Start in foregreound 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.


       -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.


       -s     Show statistics (only if compiled in).  Statistics are only
              available if compiled in with the 'STATTIME' option.  It's only
              used during code optimization phases, and will soon disappear.


       -l     Show even more statistics (implies '-s').


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


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


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


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


       -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.


       -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 wait immediately
              terminate, closing all active sessions. This option must be
              specified last, followed by any number of PIDs. Technically
              speaking, SIGTTOU and SIGTERM are sent.


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.

       - 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 into the logs. Mostly used
              for debugging purposes.

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


SEE ALSO
       More complete documentation can be found in
       /usr/obj/haproxy-1.3.15.7/fake-
       i386/usr/local/share/doc/haproxy/haproxy-en.txt.


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




                                17 August 2007                      HAPROXY(1)
