Perlbal::Plugin::Palimg(3pm) User Contributed Perl Documentation Perlbal::Plugin::Palimg(3pm)NAME
Perlbal::Plugin::Palimg - plugin that allows Perlbal to serve palette altered images
VERSION
This documentation refers to "Perlbal::Plugin::Palimg" that ships with Perlbal 1.50
DESCRIPTION
Palimg is a perlbal plugin that allows you to modify "GIF" and "PNG" on the fly. Put the images you want to be able to modify into the
"DOCROOT/palimg/" directory. You modify them by adding "/pSPEC" to the end of the url, where SPEC is one of the below defined commands
(gradient, tint, etc).
CONFIGURING PERLBAL
To configure your Perlbal installation to use Palimg you'll need to "LOAD" the plugin then add a service parameter to a "web_server"
service to activate it.
Example "perlbal.conf":
LOAD palimg
CREATE SERVICE palex
SET listen = ${ip:eth0}:80
SET role = web_server
SET plugins = palimg
SET docroot = /usr/share/doc/
SET dirindexing = 0
ENABLE palex
GRADIENTS
You can change the gradient of the image by adding "/pg0011111164ffffff" to the end of the url. 00 is the index where the gradient starts
and 111111 is the color (in hex) of the beginning of the gradient. 64 is the index of the end of the gradient and "ffffff" is the color of
the end of the gradient. Note that all colors specified in hex should be lowercase.
Example:
http://192.168.0.1/palimg/logo.gif/pg01aaaaaa99cccccc
TINTING
You can tint the image by adding "/pt000000aaaaaa" to the end of the url. 000000 should be replaced with the color to tint towards.
"aaaaaa" is optional and defines the "dark" tint color. Both colors should be specified as lowercase hex numbers.
Example:
http://192.168.0.1/palimg/logo.gif/pt1c1c1c22dba1
PALETTE REPLACEMENT
You can specify a palette to replace the palette of the image. Do this by adding up to six sets of seven hex lowercase numbers prefixed
with "/p" to the end of the URL.
Example:
http://192.168.0.1/palimg/logo.gif/p01234567890abcfffffffcccccccddddddd
BUGS AND LIMITATIONS
There are no known bugs in this module.
Please report problems to the Perlbal mailing list, http://groups.google.com/group/perlbal
Patches are welcome.
AUTHORS
Brad Fitzpatrick <brad@danga.com> Mark Smith <junior@danga.com>
LICENSE AND COPYRIGHT
Artistic/GPLv2, at your choosing.
Copyright 2004, Danga Interactive Copyright 2005-2007, Six Apart Ltd
perl v5.14.2 2010-12-20 Perlbal::Plugin::Palimg(3pm)
Check Out this Related Man Page
Perlbal::FAQ(3pm) User Contributed Perl Documentation Perlbal::FAQ(3pm)NAME
Perlbal::FAQ - Frequently Asked Questions about Perlbal
VERSION
Perlbal 1.78.
DESCRIPTION
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 whatsoever.
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 restart:
$ cat restart-perlbal.sh
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.
Plugins
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.
HTTP, SSL
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 in.
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.
SEE ALSO
Perlbal::Manual.
perl v5.14.2 2012-02-20 Perlbal::FAQ(3pm)