Bonjour/bonsoir à tous,
J'ai écumé le web à la recherche d'informations et je n'ai pas été déçu, au contraire : la multitude de ces informations, parfois obsolètes, parfois contradictoires, difficilement accessibles à un novice, m'ont petit à petit amené à venir solliciter l'aide de la communauté, tant il m'est devenu difficile d'éclaircir mes idées.
Admettons si vous le voulez bien les Données/Contraintes suivantes de mon cas :
- Il me faut développer un site web pour une grande part en C. Le choix du langage ne m'appartient pas.
- Serveur Apache dernière version et un environnement de développement qui ne permet absolument pas de tests proches d'un mode production.
- Le site doit quotidiennement faire face à un trafic important (plusieurs dizaines de milliers voire centaines de milliers d'utilisateurs ).
- Je m'intéresse uniquement à la partie "logiciel" du problème, je ne m'occupe nullement de ce qui touche aux caractéristiques matérielles du serveur.
Sachant cela, voilà où j'en suis dans mon cheminement :
- Je pourrais envisager d'exécuter mon code C en tant que programme CGI. Problème : à chaque nouvelle requête égale un nouveau processus CGI lancé. Cela ne me semble pas être la solution optimale niveau logiciel pour affronter un gros trafic.
- Heureusement, il existe FastGCI. Plus qu'un seul processus lancé pour gérer une multitude de requêtes et la possibilité de séparer les applications Web de celles propres au serveur HTTP. Problème : j'ai du mal à voir comment mettre cette solution en place. D'une part il existe une bibliothèque afin de créer des applications C optimisées pour FastCGI et d'autre part un module apache mais concrètement comment intéragissent ces deux parties, peut-être ai-je besoin de n'utiliser que l'une des deux solutions ? Où les deux doivent-elles s'articuler ensemble ? Ensuite et surtout, je "n'entends" personne parler de FastCGI comme d'une solution/alternative pour aider à optimiser la gestion d'un grand nombre de requêtes sur des sites d'envergures, du coup je finis par me demander, est-ce que c'est vraiment solide comme système, quelles sont ses performances, jusqu'à quelle limite peut-on le pousser ?
- Enfin il y a les modules apache comme c'est le cas pour PHP, où apparemment l'interprétateur est directement chargé dans chaque processus traitant une requête. Cela à l'air d'être le fonctionnement par défaut pour beaucoup de sites et c'est donc gage d'une certaine efficacité. Problème : en quoi est-ce si différent du fonctionnement d'un programme CGI et pourquoi est-ce plus performant ? Ai-je mal compris quelque chose ?... Ensuite, je ne trouve rien de semblable pour le langage C, c'est-à-dire un module apache comme pour PHP/Perl etc mais pour le C (effectivement ça n'a aucun sens dans l'absolu, C est compilé, les deux autres interprétés, mais n'existe t-il rien qui s'en rapproche pour éviter de passer par du C en CGI qui risque de s'avérer gourmand en ressource serveur ?).
Voilà, je pense tout vous avoir exposé. Merci par avance pour le temps que vous voudrez bien consacrer à la lecture de ce post.
Cordialement,
Real.
Partager