#!/usr/bin/perl # A very simple load balancing script: # If more than $nlim hits in under $tlim seconds, redirect to $mirror. # # 2002-01-24 Björn Stenberg # redirect is triggered by more than: $nlim = 10; # accesses in... $tlim = 10; # seconds $mirror = "http://rockbox.sourceforge.net/rockbox/"; open FILE, "+<.load" or die "Can't open .load: $!"; flock FILE, LOCK_EX; @a = ; if ( scalar @a > $nlim ) { $first = shift @a; } else { $first = $a[0]; } $now = time(); @a = ( @a, "$now\n" ); truncate FILE, 0; seek FILE, 0, 0; for ( @a ) { print FILE $_; } flock FILE, LOCK_UN; close FILE; $diff = $now - $first; if ( $diff < $tlim ) { print "Location: $mirror\n\n"; } else { print "Content-Type: text/html\n\n"; open FILE, "; close FILE; }