1Perlbal::FAQ(3) User Contributed Perl Documentation Perlbal::FAQ(3)
2
3
4
6 Perlbal::FAQ - Frequently Asked Questions about Perlbal
7
8 VERSION
9 Perlbal 1.78.
10
11 DESCRIPTION
12 This document aims at listing several Frequently Asked Questions
13 regarding Perlbal.
14
15 Configuring Perlbal
16 Is there a sample "perlbal.*" I can use for my "init.d"?
17
18 Yes, you can find one under "debian/perlbal.init". It implements
19 "start", "stop" and "restart/force-reload". Make sure you adjust it to
20 your particular taste and/or needs.
21
22 Is there a way to make perlbal re-read the config file without shuting
23 it down?
24
25 No, there is not. But typically, if you're making changes, you can just
26 make them on the management console, which doesn't require any restart
27 whatsoever.
28
29 Still, restarting is probably easy. The trick to it is to simulate a
30 graceful restart.
31
32 How can I implement a graceful restart?
33
34 Here's a sample script that will allow you to perform a graceful
35 restart:
36
37 $ cat restart-perlbal.sh
38 echo "shutdown graceful" | nc localhost 60000
39 /usr/local/bin/perlbal --conf=/etc/perlbal.conf
40
41 The idea is that you tell the old Perlbal to do a graceful shutdown;
42 that immediately closes all of the listening sockets, so new
43 connections are not accepted. As soon as that's done (which is instant)
44 you can start up a new Perlbal.
45
46 This gives you a minimum of downtime that can be measured on the order
47 of milliseconds (the time it takes for the new Perlbal to start up).
48
49 Remember that you need to have a "management" service listening on port
50 60000 for this example to work. See Perlbal::Manual::Management.
51
52 Load Balancing
53 What balancing algorithm does Perlbal use?
54
55 Currently, Perlbal supports only one balancing method: "random".
56
57 SET pool balance_method = 'random'
58
59 With this mode, Perlbal selects one of the nodes within the pool
60 randomly for each request received. It prefers reusing existing idle
61 backend connections if backend_persist is enabled, which is faster than
62 waiting for a new connection to open each time.
63
64 Plugins
65 Can I influence the order plugins are used?
66
67 Yes. When you set the plugins for your service they get to register
68 their hooks in order.
69
70 SET plugins = AccessControl HighPri
71
72 These hooks are pushed into an array, which means that they preserve
73 the order of the plugins.
74
75 HTTP, SSL
76 Does perlbal support HTTP 1.1?
77
78 Perlbal for the most part only speaks HTTP/1.0 both to clients and to
79 backend webservers. It happily takes requests advertising HTTP/1.1 and
80 downgrading them to HTTP/1.0 when speaking to backend serves.
81
82 It knows all about persistent connections (in both 1.0 and 1.1) and
83 will reply with HTTP/1.0 Connection: keep-alive the request was only
84 implicitly keep-alive with HTTP/1.1. etc.
85
86 Perlbal is now also starting to speak more of 1.1. For instance,
87 Perlbal does support receiving transfer-encoding "chunked" requests
88 from clients (a feature of HTTP/1.1), will send a "100 Continue" in
89 response to "Expect: 100-continue", and will parse the chunked
90 requests, writing the request-of-unknown-length to disk (only if
91 "buffered_uploads" is enabled), and then will send an HTTP/1.0 request
92 to the backends, with the actual "Content-Length" (now known) filled
93 in.
94
95 When more of 1.1 is supported, it will become an option, and later
96 become the default. However, after several years of usage, there just
97 hasn't been that much of a reason. The chunked requests (common from
98 mobile phones uploading large images) has been the most annoying
99 shortcoming but now that it's solved, it's questionable whether or not
100 more of HTTP/1.1 will be supported.
101
102 Does perlbal support SSL?
103
104 Yes. To use SSL mode you'll need IO::Socket::SSL "v0.98+" installed.
105
106 You can do SSL either on "web_server", "reverse_proxy" or "selector"
107 modes, but not on a vhost-based "selector" service, because SSL and
108 vhosts aren't compatible.
109
110 See the configuration file ssl.conf under conf/ for an example.
111
112 SEE ALSO
113 Perlbal::Manual.
114
115
116
117perl v5.38.0 2023-07-19 Perlbal::FAQ(3)