FastCGI
FastCGI est une technique permettant la communication entre un serveur web et un logiciel indépendant, c'est une évolution de Common Gateway Interface, abrégée en CGI, signifiant en anglais « Interface passerelle commune ».
Créée en 1996 pour gérer les applications dynamiques des applications du World Wide Web (souvent abrégé en Web), la Common Gateway Interface permet l’exécution d'un nouveau processus à chaque requête, permettant ainsi la génération dynamique des pages.
Dans le cas de CGI, chaque requête lance une nouvelle instance de CGI, qui appellera le programme à exécuter. Le fichier binaire cgi recrée à chaque appel le contexte de l'environnement d'exécution et ne permet pas de limiter le nombre de processus simultanés. Le nombre de processus simultanés sera donc dépendant du nombre de processus simultanés du serveur web.
Avec FastCGI, les applications générant les pages dynamiques peuvent se situer sur un ou des serveur(s) différent(s) du ou des serveur(s) hébergeant le service HTTP. Une variable est introduite permettant de déterminer le nombre minimum et maximum de processus CGI à exécuter, indépendamment du nombre de processus HTTP maximum.
En effet, lors d'une requête entrante, le serveur web envoie l'information de variable d'environnement et la requête de la page au processus FastCGI, soit à travers un socket de domaine Unix (IPC socket), soit un tube nommé, soit via le protocole TCP[1].
Références
[modifier | modifier le code]- « FastCGI:A High-Performance Web Server Interface » [archive du ], sur Open Market, Inc,
Voir aussi
[modifier | modifier le code]Liens externes
[modifier | modifier le code]- (en) site officiel des spécifications et logiciels liés au protocole FastCGI
- (en) FastCGI: A High-Performance Gateway Interface, Mark R. Brown, Open Market, Inc. 2 mai 1996, présentation de FastCGI pour WWW5
- Pour Apache : module fastCGI
- Apache 2.x :
- (en) mod_fcgid (fastcgid (fastCGI daemon) légèrement différent et plus performant)
- (en) mod_proxy_fcgi (apache proxy module pour le protocole fastcgi intégré dans apache)
- (en) mod_proxy_fcgi alternative
- Apache 1.x & 2.x :
- (en) mod_fastcgi (fork of mod_fastcgi sur github)
- Apache 2.x :
- Conteneurs de Servlets (Apache Tomcat, Jetty…)
- (en) JFastCGI
- lighttpd :
- (en) mod_fastcgi. Celui-ci communique avec un serveur fastcgi externe, tel que PHP-FPM (dans le cas d'utilisation de PHP, inclus dans php).
- NGINX :
- (en) NginxHttpFcgiModule. Celui-ci communique avec un serveur fastcgi externe, tel que PHP-FPM (dans le cas d'utilisation de PHP, inclus dans php).
- Cherokee :
- (en) mod_fastcgi
- (en) Support de FastCGI pour Microsoft IIS
- (en) Support de FastCGI pour Hiawatha Webserver