FastCGI - grænsefladen er en klient-server-protokol til interaktionen mellem en webserver og en applikation, en videreudvikling af CGI -teknologi . Sammenlignet med CGI er det mere produktivt og sikrere.
FastCGI fjerner mange af begrænsningerne ved CGI- programmer. Ulempen ved CGI-programmer er, at de skal genstartes af webserveren ved hver anmodning, hvilket resulterer i dårlig ydeevne. FastCGI, i stedet for at oprette nye processer for hver ny anmodning, bruger konstant kørende processer til at behandle flere anmodninger. Dette sparer tid.
Mens CGI-programmer kommunikerer med serveren gennem STDIN og STDOUT af den kørende CGI-proces, bruger FastCGI-processer Unix Domain Sockets eller TCP/IP til at kommunikere med serveren. Dette har følgende fordel i forhold til almindelige CGI-programmer: FastCGI-programmer kan køres ikke kun på den samme server, men hvor som helst på netværket. Det er også muligt at behandle anmodninger med flere FastCGI-processer, der kører parallelt.
lighttpd inkluderer en intern FastCGI load balancer, der kan bruges til at distribuere til flere FastCGI-servere på én gang. I modsætning til andre løsninger bør kun FastCGI-processen være i klyngen og ikke hele webserveren. Dette gør det muligt for FastCGI-processen at bruge flere ressourcer end for eksempel load-balancer + apache + mod_php.
Når du sammenligner php-FastCGI med apache+mod_php, skal du være opmærksom på, at FastCGI giver ekstra sikkerhed, såsom at køre FastCGI-processen under en anden brugerkonto end webserverbrugeren, og kan også være i en chroot 'e , bortset fra chroot 'en webserver.
Når man sammenligner perl-FastCGI med apache+mod_perl(1,2), udover ovenstående, er det bemærkelsesværdigt, at delt hukommelsesbrug mellem processer, implementeret i mod_perl via startup.pl, kræver en FastCGI-procesmanager implementeret i Perl . Dette er implementeret af FCGI::ProcManager-modulet og dets tilføjelse FCGI::Spawn.
FastCGI kan bruges på ethvert sprog, der understøtter sockets. Eksisterende API'er :
Interaktionsprotokoller | |
---|---|
Gateways |