Changes for version 1.36

  • fix bug in ClientProxy when user disconnects after POST/PUTing a content body, but before a response comes back.
  • now checks correctly for Danga::Socket version 1.44 or above. (required version was in quotes, confusing perl.)
  • vhost plugin: strip off port specification from the Host header before trying to match with configured patterns.
  • 1.35: (beta of 1.40) 2005-08-16
    • beta SSL support in a few lines of code. maybe it's completely done. maybe it's barely done. But it seems to work? I'm no SSL master... IO::Socket::SSL just made it so easy.
    • lots more tests
    • lots more cleanup
    • fix potential crashing bugs in the PUT path. luckily ones we never hit.
    • lots and lots of code cleanup
    • load plugins by either the exact case specified, all lowercase, or all lowercase with first letter uppercase. then remember the case for unloading (which was never implemented?)
    • reorganize/cleanup code related to stalling the backend due to client's buffer size exceeding one of the two limits. introduce "backend_stalled"
    • buffer uploads to disk
  • 1.3: (2005-06-26)
    • introduce CommandContext, so management commands can be less verbose when in config files (service/pool names can be left off when you just created them a couple lines before)
    • remove sendstats support
    • exit with 0 vs non-zero when/if Perlbal crashes. new command "crash" to fake a crash, for testing.
    • entirely redone management command parsing/dispatching (major code cleanup)
    • virtual host plugin on service selector framework
    • service selector framework
    • make Net::Netmask optional
    • byte range support for both webserver mode and reproxy-file mode Giao Phan <giao@guba.com>. so clients can resume large transfers.
    • test suite
    • IO::AIO support (brad)
    • change response code to client to 200 on reproxy-file from backend
    • 'nodes' command now takes as an optional argument a specific ip:port to dump the node stats for
    • AIO abstraction layer (Perlbal::AIO) which can currently do either Linux::AIO or "none" (doing everything sync). also in future File::FDpasser and other OS-specific modes [brad]
    • add buffer_backend_connect to do in memory buffering of data before we request a backend; assists slow clients without tying up a mod_perl
    • fix spinning issue when webnodes unavailable; should now not consume 100% CPU in those cases
    • revamp verbose functionality; by default it's still of, but if you specify VERBOSE ON in the config file, it turns it on for management connections by default. management connections, when specifying VERBOSE ON/OFF, will now set the flag only for that connection.
    • new command for config file; VERBOSE ON/OFF; can be used to enable or disable confirmation of all commands such as SET, SERVER, CREATE, etc. by default, it's off for config files, but on for management connections.
    • add generation count to services that increments every time a pool is switched. this data is now stored on backends when they're spawned as well, and when we allocate a backend we verify the generation so old ones are thrown away.
    • allow setting of nodefile on pools to 'none' or 'null' or 'undef' or just an empty set of quotes ("", '') in order to stop using node files
    • automatically set use count to 0 on new nodes coming in from nodefile
    • made auto-vivification of pulls throw warnings, and made Perlbal die if it tries to vivify a pool and the user has previously manually declared a pool
    • updated pool commands to be more flexible (POOL pool ADD node, etc)
    • add pools; a way of having different sets of nodes and instantly switching between them, so traffic stops going to old nodes; see the example config file for usage
    • work partially without Linux::AIO (does sync stat of node file in reverse proxy mode, and webserver mode doesn't work) --brad

Documentation

Reverse-proxy load balancer and webserver

Modules

Reverse-proxy load balancer and webserver

Provides

in lib/Perlbal/Plugin/Palimg.pm
in lib/Perlbal/Plugin/Palimg.pm
in lib/Perlbal/AIO.pm
in lib/Perlbal/BackendHTTP.pm
in lib/Perlbal/ClientHTTP.pm
in lib/Perlbal/ClientHTTPBase.pm
in lib/Perlbal/ClientManage.pm
in lib/Perlbal/ClientProxy.pm
in lib/Perlbal/CommandContext.pm
in lib/Perlbal/HTTPHeaders.pm
in lib/Perlbal/ManageCommand.pm
in lib/Perlbal/Plugin/Highpri.pm
in lib/Perlbal/Plugin/Palimg.pm
in lib/Perlbal/Plugin/Queues.pm
in lib/Perlbal/Plugin/Stats.pm
in lib/Perlbal/Plugin/Stats.pm
in lib/Perlbal/Plugin/Vhosts.pm
in lib/Perlbal/Pool.pm
in lib/Perlbal/ReproxyManager.pm
in lib/Perlbal/Service.pm
in lib/Perlbal/Socket.pm
in lib/Perlbal/TCPListener.pm
in lib/Perlbal/Test.pm
in lib/Perlbal/Test/WebClient.pm
in lib/Perlbal/Test/WebServer.pm
in lib/Perlbal/Util.pm