Snabbare script genom FastCGI istället för vanliga CGI - hos Levonline IT hotell, web hotel

Support

Välkommen till vår supportsektion. Bläddra ner för svaret på din fråga. Har du en teknisk fråga hittar du antagligen svaret på den nedan, eller så kan du prova att söka. Om du saknar något här eller har fått hjälp med något via vår support som du tycker borde finnas här, hör gärna av dig till oss så ordnar vi det!

Utöver supportsidorna har vi tagit fram en rad verktyg för domän och hemsida. Bland verktygen finner du guider för whois, SPF, HTTP-huvuden och mycket mer!

Om du behöver hjälp direkt av vår duktiga support är du välkommen att höra av dig per e-post (support@levonline.com) eller via telefon (08-320 360); vår kundtjänst finns tillgänglig vardagar mellan kl. 08:00 och 18:00 för att hjälpa dig med alla tänkbara problem eller önskemål.

Nedan finner du även ett kontaktformulär för supportfrågor.
Fritext sök
Populärast Webhotell Epost Domän Egen server Bredband
Hemsida PHP ASP Java Databas Unix Allmänt CGI Statistik

Snabbare script genom FastCGI istället för vanliga CGI

Läs mer om FastCGI på www.fastcgi.com.

FastCGI är ett sätt att få till något snabbare och effektivare än vanliga CGI-script.

Istället för som Suexec CGI-script låta webservern forka minst två gånger för varje ny websida som skall visas så ligger FastCGI-script kvar på servern och svarar på flera frågor. Det drar mycket mindre resurser och går snabbare.

Här är ett exempel på ett litet FastCGI-script. Scriptet inte får ligga under /cgi-bin eftersom webservern behandlar allting som ligger där som vanliga CGI-script oavsett ändelse. Prova lägg det som ~/public_html/mindomän.com/simple.fcgi och anropa det som http://www.mindomän.com/simple.fcgi.

#!/usr/bin/perl

use FCGI;
my $counter = 1;

while (FCGI::accept() >= 0) {
  print "Content-type: text/html\n\n$counter\n";
  $counter++;
}

Om man har ett gäng vanliga CGI-script som man vill göra om till FastCGI så kan det löna sig att istället för att byta rakt av istället skapa ett FastCGI-script och ge det olika argument. Då behöver inte lika många FastCGI-script startas vilket går snabbare och drar mindre internminne. Istället för att ha slumpbild1.pl, slumpbild2.pl och slumpbild3.pl så kan man alltså ha slumpbild.fcgi?nr=1, slumpbild.fcgi?nr=2 och slumpbild.fcgi?nr=3 istället.

Detta script använder modulen CGI::Fast till Perl istället för FCGI. Läs mer om hur den fungerar genom att skriva man CGI::Fast när du loggat in via ssh på Levonlines maskiner. man CGI rekommenderas också.

Om man vill prova nya versioner av sitt script så måste man avsluta den pågående FastCGI-processen på servern. Exemplet nedan avslutar när det får ett visst argument.

#!/usr/bin/perl

use CGI::Fast qw(:standard);
my $counter1 = 0;
my $counter2 = 0;
my $counter = 0;

while ($query = new CGI::Fast) {
  print header;
  print
        h1("Fast CGI Rocks"),
        "Invocation number ",b($counter++),
        " PID ",b($$),".",
        hr;

  if ($query->param('nr') eq "1") {
      $counter1++;
  } elsif ($query->param('nr') eq 'exit') {
      print "avslutar...  ";
      print 'kör igen';
      exit;
  } else {
      $counter2++;
  }

  print '

nr1: '; print "$counter1\n"; print '

nr2: '; print "$counter2\n"; print '

avsluta '; }

Ibland vill man låta sina FastCGI script ta hand om signaler. Här kan man läsa mer om det på FastCGIs hemsida: http://www.fastcgi.com/docs/faq.html#PerlSignals.

Fick du svar på din fråga?

Är du nöjd med svaret på frågan? Ge oss förslag på förbättringar här!




Denna information används för att förbättra artikeln i framtiden.
För snabb hjälp, använd istället kontaktformuläret längre ned.
KONTAKTA OSS!