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

FreeBSD Manual Pages

  
 
  

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

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

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

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

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

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

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

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

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

       - 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 De-
       bian systems, you can find this file in /usr/share/doc/haproxy/configu-
       ration.txt.gz.

AUTHOR
       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:
<https://man.freebsd.org/cgi/man.cgi?query=haproxy&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help