Software-Engineering Martin Fabiani

Sitemap (Navigation ohne JavaScript)

Impressum: Martin Fabiani, Röderbergweg 104, D-60485 Frankfurt, Tel: +49 (69) 49084808, E-Mail: info (at) fabiani.net, USt-IdNr: DE217298609

Codebeispiele zu Perl

Webanfragen umleiten

Manchmal will man, daß ein Rechner mit einer prägnanten Adresse Webanfragen entgegennimmt und die an einen anderen Rechner weiterleitet (weil auf dem Server z.B. kein voller Webserver laufen darf). Dafür könnte man folgendes Script verwenden, welches einen Webserver startet und alle eingehenden Anfragen an einen bestimmten weiteren Webserver weiterleitet (durch 303 Moved permanently).

01: #! /usr/bin/perl
02: use strict;
03: use warnings;
04: 
05: # page to forward requests to
06: use constant LOCATION => "http://www.fabiani.net"; 
07: 
08: # required modules
09: use HTTP::Daemon;
10: use HTTP::Status;
11: 
12: # create a new http-Daemon
13: my $d = HTTP::Daemon->new(LocalPort => 80)
14:     or die "Error in setting up HTTP::Daemon: $!\n";
15: print "Running as: ", $d->url, "\n";
16: 
17: while (my $c = $d->accept) {
18:     while (my $r = $c->get_request) {
19:     $c->send_redirect( LOCATION . $r->url->path );
20:     } # while
21:     $c->close;
22:     undef($c);
23: } # while

Das Modul HTTP::Daemon ist leider kein Standardmodul und somit nicht auf jedem Webserver vorhanden. Da es sich dabei jedoch um ein reines Perl-Modul handelt, kann man auch einfach die entsprechenden Dateien auf den Server laden. Ein weiterer Nachteil könnte sein, daß das Modul HTTP-Requests seriell bearbeitet und nicht - wie die meisten Webserver - quasi-parallel. Aber bei einer so einfachen Weiterleitung dürfte dies wohl keine Rolle spielen.

Wieder ein schönes Beispiel, wie mächtig selbst einfaches Perl sein kann...


Letztes Update dieser Seite: Sunday, 16-Jan-2005 22:47:17 CET