| .TH HAPROXY 1 "17 August 2007" |
| |
| .SH NAME |
| |
| HAProxy \- fast and reliable http reverse proxy and load balancer |
| |
| .SH SYNOPSIS |
| |
| haproxy \-f <configuration\ file> [\-L\ <name>] [\-n\ maxconn] [\-N\ maxconn] [\-C\ <dir>] [\-v|\-vv] [\-d] [\-D] [\-q] [\-V] [\-c] [\-p\ <pidfile>] [\-dk] [\-ds] [\-de] [\-dp] [\-db] [\-dM[<byte>]] [\-m\ <megs>] [{\-sf|\-st}\ pidlist...] |
| |
| .SH 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. |
| |
| .SH OPTIONS |
| |
| .TP |
| \fB\-f <configuration file>\fP |
| Specify configuration file path. |
| |
| .TP |
| \fB\-L <name>\fP |
| Set the local instance's peer name. Peers are defined in the \fBpeers\fP |
| 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. |
| |
| .TP |
| \fB\-n <maxconn>\fP |
| Set the high limit for the total number of simultaneous connections. |
| |
| .TP |
| \fB\-N <maxconn>\fP |
| Set the high limit for the per-listener number of simultaneous connections. |
| |
| .TP |
| \fB\-C <dir>\fP |
| Change directory to <\fIdir\fP> before loading any files. |
| |
| .TP |
| \fB\-v\fP |
| Display HAProxy's version. |
| |
| .TP |
| \fB\-vv\fP |
| Display HAProxy's version and all build options. |
| |
| .TP |
| \fB\-d\fP |
| 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. |
| |
| .TP |
| \fB\-D\fP |
| Start in daemon mode. |
| |
| .TP |
| \fB\-Ds\fP |
| Start in systemd daemon mode, keeping a process in foreground. |
| |
| .TP |
| \fB\-q\fP |
| Disable messages on output. |
| |
| .TP |
| \fB\-V\fP |
| Displays messages on output even when \-q or 'quiet' are specified. Some |
| information about pollers and config file are displayed during startup. |
| |
| .TP |
| \fB\-c\fP |
| 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. |
| |
| .TP |
| \fB\-p <pidfile>\fP |
| Ask the process to write down each of its children's pids to this file |
| in daemon mode. |
| |
| .TP |
| \fB\-dk\fP |
| Disable use of \fBkqueue\fP(2). \fBkqueue\fP(2) is available only on BSD systems. |
| |
| .TP |
| \fB\-ds\fP |
| Disable use of speculative \fBepoll\fP(7). \fBepoll\fP(7) is available only on |
| Linux 2.6 and some custom Linux 2.4 systems. |
| |
| .TP |
| \fB\-de\fP |
| Disable use of \fBepoll\fP(7). \fBepoll\fP(7) is available only on Linux 2.6 |
| and some custom Linux 2.4 systems. |
| |
| .TP |
| \fB\-dp\fP |
| Disables use of \fBpoll\fP(2). \fBselect\fP(2) might be used instead. |
| |
| .TP |
| \fB\-dS\fP |
| Disables use of \fBsplice\fP(2), which is broken on older kernels. |
| |
| .TP |
| \fB\-db\fP |
| 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. |
| |
| .TP |
| \fB\-dM[<byte>]\fP |
| Initializes all allocated memory areas with the given <\fIbyte\fP>. This makes |
| it easier to detect bugs resulting from uninitialized memory accesses, at the |
| expense of touching all allocated memory once. If <\fIbyte\fP> is not |
| specified, it defaults to 0x50 (ASCII 'P'). |
| |
| .TP |
| \fB\-m <megs>\fP |
| Enforce a memory usage limit to a maximum of <megs> megabytes. |
| |
| .TP |
| \fB\-sf <pidlist>\fP |
| 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, \fBSIGTTOU\fP and \fBSIGUSR1\fP are sent. |
| |
| .TP |
| \fB\-st <pidlist>\fP |
| 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, \fBSIGTTOU\fP and \fBSIGTERM\fP are sent. |
| |
| .SH 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 \fB\-r\fP option must be passed |
| to the daemon in order to enable UDP. |
| |
| .SH 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. |
| .TP |
| \- \fBSIGUSR1\fP |
| Tells the daemon to stop all proxies and exit once all sessions are closed. It is often referred to as the "soft-stop" signal. |
| .TP |
| \- \fBSIGTTOU\fP |
| Tells the daemon to stop listening to all sockets. Used internally by \fB\-sf\fP and \fB\-st\fP. |
| .TP |
| \- \fBSIGTTIN\fP |
| Tells the daemon to restart listening to all sockets after a \fBSIGTTOU\fP. Used internally when there was a problem during hot reconfiguration. |
| .TP |
| \- \fBSIGINT\fP and \fBSIGTERM\fP |
| Both signals can be used to quickly stop the daemon. |
| .TP |
| \- \fBSIGHUP\fP |
| Dumps the status of all proxies and servers into the logs. Mostly used for trouble-shooting purposes. |
| .TP |
| \- \fBSIGQUIT\fP |
| Dumps information about memory pools on stderr. Mostly used for debugging purposes. |
| .TP |
| \- \fBSIGPIPE\fP |
| This signal is intercepted and ignored on systems without \fBMSG_NOSIGNAL\fP. |
| |
| .SH 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. |
| |
| .SH AUTHOR |
| |
| HAProxy was written by Willy Tarreau. This man page was written by Arnaud Cornet and Willy Tarreau. |
| |