Forum Programmation.perl Application perl dancer en cgi lente

Posté par  (site web personnel) .
Étiquettes :
0
31
oct.
2012

Bonjour,

Je viens de déployer un petit blog écrit en perl avec dancer sur mon serveur lighttpd. Le déploiement se fait en cgi (je n'arrive pas à le faire tourner en fastcgi). Mais l'application est affreusement lente, il faut plusieurs secondes pour afficher une bête page avec peu de contenu.

Je tiens à préciser que l'application est tout à fait véloce si je la lance manuellement avec perl (sans passer par lighttpd).

Voilà le contenu du dispatch.cgi :

#!/usr/bin/env perl
use Dancer ':syntax';
use FindBin '$RealBin';
use Plack::Runner;

# For some reason Apache SetEnv directives dont propagate
# correctly to the dispatchers, so forcing PSGI and env here
# is safer.
set apphandler => 'PSGI';
set environment => 'production';

my $psgi = path( '/', 'home', 'xxx', 'xxx', 'xxx', 'bin', 'app.pl');
#my $psgi = path($RealBin, '..', 'bin/app.pl');
die "Unable to read startup script: $psgi" unless -r $psgi;

Plack::Runner->run($psgi);

et la conf lighttpd :

$HTTP["host"] == "mon.site.org" {
   cgi.assign = ( ".cgi" => "/usr/bin/perl" )
   alias.url += ("" => "/home/xxx/xxx/xxx/public/dispatch.cgi")
}

Une idée ?

  • # Starman

    Posté par  (site web personnel) . Évalué à 1.

    Je ne connais pas lighttpd, mais j'ai aussi un petit serveur avec dancer et j'utilise Starman comme serveur. C'est un petit serveur écrit en perl, mais suffisamment rapide pour un blog je pense, et facile à utiliser.

    Une simple ligne avec plack pour démarrer le serveur:

     plackup --access-log=logs/access.log -E deployment -s Starman --workers=10 -p 8000 -a bin/app.pl
    
    

    Par contre je n'utilise pas cgi, simplement dancer et le Template Toolkit.

    • [^] # Re: Starman

      Posté par  (site web personnel) . Évalué à 1.

      Merci, j'ai donc utilisé plackup ainsi que la fonction proxy de lighttpd, un petit script init, et ça roule !

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.