Question

Je suis en train de concevoir une application qui comportera 3 ou 4 services exécutés en tant que processus distincts et liés par un IPC approprié. Le système va avoir une interface Web et je veux utiliser le serveur Web qui existe.

L’interface Web doit être accessible via une URL permettant d’avoir d’autres URL sur le même serveur Web effectuant des tâches totalement différentes. Je prévois d'utiliser le chemin sous cette URL pour spécifier ce que l'interface Web doit faire. Il est doté d'installations pouvant être utilisées par d'autres applications sur Internet et pour permettre aux utilisateurs d'interagir dans un navigateur.

Au départ, je travaillerais comme suit:

  • oblige le serveur Web à lancer un processus CGI pour chaque requête reçue (comme SetHandler dans Apache)
  • laisser le CGI se connecter à l'IPC
  • laissez-le obtenir ce dont il a besoin des services backend
  • laisser le CGI renvoyer HTML / XML et tout statut HTTP en fonction des réponses des services

Maintenant, ce que je veux vraiment, c’est éviter les deux premières étapes ou, si je ne le peux pas, éviter la seconde, car je crains de perdre des performances en frais généraux inutiles (les requêtes provenant d’autres applications). pourrait être fréquent).

PHP, par exemple, peut ouvrir des connexions persistantes à une base de données MySQL qui survivent à l’exécution du script et n’ont pas besoin d’être recréées la prochaine fois, bien que je ne sache pas comment. De plus, si j'ai bien compris, les modules Apache sont chargés une fois au démarrage du serveur. Cela pourrait supprimer la première étape mais me lier à Apache.

Alors, quels sont les bons moyens d’attacher un gestionnaire d’URL spécifiques à différents serveurs Web? Je ne veux pas gérer le HTTP, sinon je pourrais utiliser une configuration de proxy sur un deuxième serveur, mais cela semble tellement réinventer la roue. Si vous pensez que CGI va bien et que vous avez des exemples de cas où elle traite un grand nombre de demandes d’une structure similaire, merci de me le faire savoir.

Était-ce utile?

La solution

OK, j'avais déjà négligé cela auparavant. En expliquant ma question ici, cela m’a amené:

  

Au lieu de créer un nouveau processus pour chaque requête, FastCGI peut utiliser un seul processus persistant, qui gère de nombreuses requêtes tout au long de sa vie. - Wikipedia: FastCGI

Autres conseils

Même sous des charges modérées, CGI est une bête indescriptible. FastCGI est une option, mais vous trouverez probablement aussi un paquet mod_XXXX où XXXX est le nom de votre langue. Il y a un mod pour ruby, perl et python par exemple et probablement quelques autres.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top