FastCGI

FastCGI er en protokol for sammenknytning interaktive programmer med en web-server.

FastCGI er en variation af den kendte Common Gateway Interface.

Hovedformålet med FastCGI er at mindske byrden forbundet med det faktum at forbinde webserveren og Common Gateway Interface programmer, som tillader en server til at håndtere flere forespørgsler på én gang.

Fordel

  • Uanset hvilket sprog der anvendes. Valgfrihed af udviklingsplatform: C ++, PHP, Perl, Java, blandt andre.
  • En separat proces anvendes. Frit valg af web-server. Nem fejlfinding og fejlhåndtering.
  • Mulig henrettelse i separat vært. Større frihed til systemkonfiguration, både netværk design og valg af operativsystemer. Formindsk arbejdsbyrden for den primære server.

Sammenfattende designfrihed af hastighed CGI til en server-modul ..

Historie

CGI er en protokol for sammenknytning eksterne applikationer med webservere. CGI programmer kører i en separat proces, der er oprettet i begyndelsen af ​​hver anmodning og er færdig, når han er færdig med sit arbejde. Denne model af "en ny proces for hver anmodning" gør CGI-programmer er meget nemme at implementere, men begrænse effektivitet og skalerbarhed. Ved høje belastninger, overbelastning af det operativsystem for skabelse og destruktion processen bliver betydelig og grænser skalerbarhed. Desuden modellen for CGI processer begrænser genbrug ressource teknikker.

For at løse problemet med skalerbarhed CGI, udviklet FastCGI Open Market og først indført på dit produkt webservice i midten af ​​90'erne. Open Market FastCGI oprindeligt udviklet til dels som en reaktion på den konkurrencedygtige, så i færd med Netscape proprietære API, det NSAPI, der blev brugt til at udvikle web-applikationer.

Selvom oprindeligt udviklet af Open Market FastCGI det blev gennemført af andre producenter af web services. FastCGI dog konkurrerede mod andre teknikker, som også forsøger at fremskynde og forenkle kommunikation server side, men uden at følge CGI paradigme. Moduler såsom Apache mod og mod perl php dukkede omkring samme tid og syntes at være bedre erstatninger for CGI, muliggør en meget tæt integration med bunden af ​​webserveren.

Implementering Detaljer

I stedet for at skabe ny proces for hver anmodning, kan FastCGI bruge en enkelt vedvarende proces, som håndterer enhver anmodning i løbet af sin levetid. Den omstændighed, at behandle flere anmodninger på en gang opnås enten ved anvendelse af en enkelt forbindelse til en intern multiplexing og / eller ved hjælp af flere forbindelser. Flere af disse processer kan eksistere, og det er noget, der øger skalerbarhed og ydeevne. FastCGI giver også programmer til at gøre webserveren til at udføre visse simple operationer, såsom at læse en fil, før anmodningen er behandlet. Variabler Miljø og sideanmodninger sendes fra webserveren til at behandle via en TCP-forbindelse eller via Unix stik. Svarene returneres fra processen til webserveren på samme forbindelse. Forbindelsen kan være lukket i slutningen af ​​et svar, men webserveren og processen holdes kører.

Flere administratorer og programmører af hjemmesider fandt, at adskillelsen af ​​web-applikationer med hensyn til webserveren FastCGI produkt havde mange fordele i forhold indlejrede tolke. Denne adskillelse gør det muligt for server-processer og applikationer genstartes uafhængigt; vigtigt at tage hensyn til i betragtning travle hjemmesider. Dette letter også anvendelsen af ​​politikkerne sikkerhedsopdateringer til hvert program; vigtig ting for internetudbydere og web-hosting virksomheder.

Webservere, der implementerer FastCGI

  • Abyss Web Server
  • Apache-server
    • Mod_fcgid implementeret. Dette modul var tredje, men blev forsikret om, at det ville være et delprojekt af Apache i 2009, ledet af Chris Darroch
    • Den forældede tredje modul bliver også brugt mod_fastcgi
    • Multiplexing ansøgninger gennem en enkelt forbindelse er forbudt udformningen af ​​Apache, så Apache ikke understøttes
  • Cherokee Server
  • Hiawatha webserver
    • Load balancing støtte til FastCGI
    • Support bur root-servere med FastCGI
  • LigWeb Server
  • Litespeed Webserver
  • Microsoft IIS
  • Kerio WebSTAR
  • Nginx
  • Open Market webserver
  • Resin Application Server
  • Roxen webserver
  • Sun Java System webserver
  • Enhver Servlet container ved hjælp af JFastCGI biblioteket.
  • Zeus webserver
  • Min server projekt

"Bindinger 'sprog til FastCGI API

FastCGI kan implementeres på alle sprog, der understøtter stikkontakter. API eksisterer for at:

  • Borland Delphi / FreePascal
  • C
  • C ++
  • Kylling Scheme
  • Common Lisp: CLISP og CMUCL
  • D
  • Guile Scheme
  • Eiffel
  • Haskell
  • HP Basic for OpenVMS
  • Java
  • Lua
  • OCaml
  • Mono XSP
  • Perl
  • PHP
  • Roadsend PHP
  • Python
  • Rubin
  • SmallEiffel
  • Smalltalk: Smalltalk og Dolphin FasTalk
  • TCL

FastCGI aktiveret webapplikationer bærbarhed; i modsætning hertil er applikationer, der blev udviklet til indlejrede tolke generelt meget begrænset til Apache API'en. Nylige rammer såsom Ruby on Rails, Kepler tillade brug af eventuelle indlejrede tolke, men også FastCGI. Denne tendens ser ud til at fortsætte.

Biblioteker omfatte støtte til FastCGI

  • qDecoder
  • GNU Cgicc
Forrige artikel Finidi George
Næste artikel Fallos