FastCGI è un protocollo che permette di interfacciare programmi interattivi CGI con un server web. FastCGI è una variazione della prima Common Gateway Interface (CGI); lo scopo principale di FastCGI è quello di ottimizzare le risorse del sistema nell'interfacciamento tra il programma CGI e il server web, permettendo al server di gestire più richieste di pagina web assieme.
Funzionamento
Invece di creare un nuovo processo per ogni richiesta, FastCGI usa i processi persistenti per gestire una serie di richieste. Questi processi sono posseduti dal server di FastCGI e non dal server web. Per rispondere a una richiesta entrante, il server web invia informazioni e la pagina richiesta ad un processo di FastCGI su un socket (nel caso che FastCGI sia installato sulla stessa macchina del server web) o con un collegamento TCP (in caso FastCGI sia installato su una macchina remota). La risposta viene rimandata dal processo al server web sullo stesso collegamento, e il sistema di server web di conseguenza consegna quella risposta all'utilizzatore finale. Il collegamento può essere chiuso alla fine di una risposta, ma i processi del server web e i processi del server di FastCGI persistono. Ogni processo di FastCGI può gestire molte richieste da quando è attivo, in tal modo si evita uno spreco di risorse richieste per la creazione di un processo e per la sua terminazione. Gli amministratori di un sito web possono trovare che la separazione delle applicazioni del server web in FastCGI ha molti vantaggi sugli interpreti dei vari linguaggi[non chiaro] (mod_perl, mod_php, ecc.).
Server Web che implementano FastCGI
- Abyss Web Server
- Apache HTTP Server (partial)
- Implemented by mod_fcgid. This module used to be third-party, but was granted to the ASF as an Apache HTTP Server subproject in 2009, shepherded by Chris Darroch.[1] It only supports UNIX sockets, no TCP sockets.[2]
- An older, no longer updated, third-party module mod_fastcgi is also being used. As of Apache 2.4.x, this module no longer compiles properly.[3]
- Multiplexing of requests through a single connection is prohibited by Apache 1.x design,[4] so this isn't supported
- In Apache 2.4, mod_proxy_fcgi was added, supporting TCP FastCGI servers.
- Cherokee HTTP Server[5]
- HAProxy
- Hiawatha webserver[6]
- Loadbalancing FastCGI support
- Supports chrooted FastCGI servers
- Lighttpd[7]
- LiteSpeed Web Server
- Microsoft IIS[8]
- Kerio WebSTAR
- Nginx
- Open Market Web Server
- pronghorn Web Server
- Resin Application Server
- Roxen Web Server
- Sun Java System Web Server
- Any Servlet container (such as Apache Tomcat or Jetty), using the JFastCGI library.
- Zeus Web Server
Note
Collegamenti esterni