Perlbal

Perl-based reverse proxy load balancer and web server
Download

Perlbal Ranking & Summary

Advertisement

  • Rating:
  • License:
  • GPL
  • Price:
  • FREE
  • Publisher Name:
  • Brad Fitzpatrick
  • Publisher web site:
  • http://danga.com/
  • Operating Systems:
  • Mac OS X
  • File Size:
  • 141 KB

Perlbal Tags


Perlbal Description

Perl-based reverse proxy load balancer and web server Perlbal is a single-threaded event-based server supporting HTTP load balancing, web serving, and a mix of the two.One of the defining things about Perlbal is that almost everything can be configured or reconfigured on the fly without needing to restart the software. Also, a basic configuration file containing a management port will enables the user to easily perform operations on a running instance of Perlbal. Here are some key features of "Perlbal": · Web Server · Listen on a port, share from a directory · Directory indexing · Byte range support (clients can resume downloads) · Can have directory index requests fall back to index file list · Persistent client connections (configurable) · Almost all1 disk operations are done asynchronously as to not stall the event loop · Configurable support for storing files (PUT, DELETE support) · Reverse Proxy · Maintains pool of connected backend connections to reduce turnover · Gets list of nodes either from asynchronously monitored node file, or from in-server pool objects which you can add/remove nodes from using the management interface. · Intelligent load balancing based on what backend connections are free for a new request. No unreliable "weighting" numbers required. · Can verify (using a quick OPTIONS request) that a backend connection is talking to a webserver and not just the kernel's listen queue before sending client requests at it. Lower latency for the client. · Has a high priority queue for sending requests through to backends quickly · Can allow X-Forwarded-For (and similar) headers from client based on client IP · Configurable header management before sending request to backend · Internal redirection to file or URL(s) · Persistent client connections (configurable) · Persistent backend connections (shared by multiple clients; no "backend waste") · Performance · Event-based using epoll or kqueue to avoid the scalability problems of not-so-modern systems · HTTP Header processing (optionally) done in C with Perlbal::XS::HTTPHeaders for maximum performance · 100% asynchronous in all the recommended use cases · Lightweight · Great performance "out-of-the-box" (for both small and large sites) · Statistics and Monitoring The management interface provides extremely detailed and powerful statistics in addition to runtime configuration. For example: · CPU usage (user, system) · Total requests served across all services · Requests service by individual backends · Perlbal uptime · All connected sockets (and tons of info about each) · Outstanding connections to backends · Backends that have recently failed verification · Pending backend connections by service · Total of all socket states by socket type · Size (in seconds and number of connections) of all queues · State of reproxy engine (queued requests, outstanding requests, backends) · Loaded plugins per service · Plugins (Extensibility) · Perlbal supports the concept of having per-service (and global) plugins that can override many parts of request handling and behavior. What's New in This Release: · Add 'dumpconfig' command and related framework. · *** BETA FEATURE STATUS *** · Fix obscure race condition (spontaneously closed keepalives · after POST requests, Andreas J Koenig) · make Perlbal::Test be more robust and only use free ports. · (Bart van der Schans ) · Make Content-Range replies work (Ask Bj??rn Hansen) · Make Redirect plugin more standards compliant (Ask Bj??rn Hansen) · Fix X-REPROXY-FILE to work with SSL connections (Greg Denton) · Syslog as 'crit' rather than 'critical' (noticed by Richard Bronosky) · Allow zero byte PUT requests (in normal PUT situations) · Fix for serving files from the filesystem over SSL (Greg Denton) · Beginnings of IPv6 support. You can now set 'listen' to just a port · number and if you have IPv6 setup, have IO::Socket::INET6, and have · Danga::Socket 1.61, it'll listen on both IPv6 and IPv4 on that port. · (the equivalent to 0.0.0.0). By default, with the old required syntax · of 'listen' being n.n.n.n:port, that'll force IPv4 mode and there are · no changes. Even without IPv6 support, you can now listen on a port · without specifying e.g. 0.0.0.0:80. Currently unimplemented: listening · on specific IPv6 addresses, connecting to IPv6 backends, etc. · (Brad Fitzpatrick ) · support filenames with +'s in webserver mode (Jordi Funollet). · change the VHost plugin to treat 'www.example.com.' and · 'www.example.com' the same. (Ask) · silence warnings when things that look like variables on comment lines · in config input. · silence warnings from mgmt system when showing an object that doesn't · have a listening socket. don't fail on t/90-accesscontrol.t if Net:


Perlbal Related Software