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

FreeBSD Manual Pages


home | help
Perlbal::FAQ(3)	      User Contributed Perl Documentation      Perlbal::FAQ(3)

       Perlbal::FAQ - Frequently Asked Questions about Perlbal

       Perlbal 1.78.

       This document aims at listing several Frequently	Asked Questions
       regarding Perlbal.

   Configuring Perlbal
       Is there	a sample "perlbal.*" I can use for my "init.d"?

       Yes, you	can find one under "debian/perlbal.init". It implements
       "start",	"stop" and "restart/force-reload". Make	sure you adjust	it to
       your particular taste and/or needs.

       Is there	a way to make perlbal re-read the config file without shuting
       it down?

       No, there is not. But typically,	if you're making changes, you can just
       make them on the	management console, which doesn't require any restart

       Still, restarting is probably easy. The trick to	it is to simulate a
       graceful	restart.

       How can I implement a graceful restart?

       Here's a	sample script that will	allow you to perform a graceful

	   $ cat
	   echo	"shutdown graceful" | nc localhost 60000
	   /usr/local/bin/perlbal --conf=/etc/perlbal.conf

       The idea	is that	you tell the old Perlbal to do a graceful shutdown;
       that immediately	closes all of the listening sockets, so	new
       connections are not accepted. As	soon as	that's done (which is instant)
       you can start up	a new Perlbal.

       This gives you a	minimum	of downtime that can be	measured on the	order
       of milliseconds (the time it takes for the new Perlbal to start up).

       Remember	that you need to have a	"management" service listening on port
       60000 for this example to work. See Perlbal::Manual::Management.

   Load	Balancing
       What balancing algorithm	does Perlbal use?

       Currently, Perlbal supports only	one balancing method: "random".

	   SET pool balance_method = 'random'

       With this mode, Perlbal selects one of the nodes	within the pool
       randomly	for each request received. It prefers reusing existing idle
       backend connections if backend_persist is enabled, which	is faster than
       waiting for a new connection to open each time.

       Can I influence the order plugins are used?

       Yes. When you set the plugins for your service they get to register
       their hooks in order.

	   SET plugins = AccessControl HighPri

       These hooks are pushed into an array, which means that they preserve
       the order of the	plugins.

       Does perlbal support HTTP 1.1?

       Perlbal for the most part only speaks HTTP/1.0 both to clients and to
       backend webservers. It happily takes requests advertising HTTP/1.1 and
       downgrading them	to HTTP/1.0 when speaking to backend serves.

       It knows	all about persistent connections (in both 1.0 and 1.1) and
       will reply with HTTP/1.0	Connection: keep-alive the request was only
       implicitly keep-alive with HTTP/1.1.  etc.

       Perlbal is now also starting to speak more of 1.1. For instance,
       Perlbal does support receiving transfer-encoding	"chunked" requests
       from clients (a feature of HTTP/1.1), will send a "100 Continue"	in
       response	to "Expect: 100-continue", and will parse the chunked
       requests, writing the request-of-unknown-length to disk (only if
       "buffered_uploads" is enabled), and then	will send an HTTP/1.0 request
       to the backends,	with the actual	"Content-Length" (now known) filled

       When more of 1.1	is supported, it will become an	option,	and later
       become the default. However, after several years	of usage, there	just
       hasn't been that	much of	a reason. The chunked requests (common from
       mobile phones uploading large images) has been the most annoying
       shortcoming but now that	it's solved, it's questionable whether or not
       more of HTTP/1.1	will be	supported.

       Does perlbal support SSL?

       Yes. To use SSL mode you'll need	IO::Socket::SSL	"v0.98+" installed.

       You can do SSL either on	"web_server", "reverse_proxy" or "selector"
       modes, but not on a vhost-based "selector" service, because SSL and
       vhosts aren't compatible.

       See the configuration file ssl.conf under conf/ for an example.


perl v5.32.1			  2012-02-20		       Perlbal::FAQ(3)


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

home | help