Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
HAPROXY(1)		    General Commands Manual		    HAPROXY(1)

       HAProxy - fast and reliable http	reverse	proxy and load balancer

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

       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.

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

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

       -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 fore-
	      ground or	daemon mode.

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

       -q     Disable messages on output.

       -V     Displays messages	on output even when -q or 'quiet'  are	speci-
	      fied.  Some  information	about pollers and config file are dis-
	      played 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.

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

       -dv    Disable  use  of	event ports. Event ports are available only on
	      SunOS systems derived from Solaris 10 and	later (including illu-
	      mos 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	debug-
	      ging).  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.

	      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

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

       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.

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

       - 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	inter-
	      nally 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 re-

       - 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

       A  much	better documentation can be found in configuration.txt.	On De-
       bian systems, you can find this file in /usr/share/doc/haproxy/configu-

       HAProxy	was written by Willy Tarreau. This man page was	written	by Ar-
       naud Cornet and Willy Tarreau.

				17 August 2007			    HAPROXY(1)


Want to link to this manual page? Use this URL:

home | help