Apache: VirtualHost avec [PHP | Python | Ruby] support
-
23-08-2019 - |
Question
J'expérimente avec plusieurs langues (Python, Ruby ...), et je voudrais savoir s'il y a un moyen pour optimiser mon serveur Apache pour charger uniquement certain VirtualHost, par exemple:
http://myapp1 <- just with Ruby support
http://myapp2 <- just with Python support
http://myapp3 <- just with Php support
...
Merci.
La solution
Chaque charge de travail Apache chaque module, il est donc impossible de faire dans Apache lui-même.
Ce que vous devez faire est de déplacer vos modules linguistiques aux processus externes aux travailleurs Apache.
Ceci est fait pour vos langues avec les modules suivants:
- PHP : mod_fastcgi . Plus d'info:. Apache + chroot + FastCGI
- Python : mod_wsgi Mode démon .
- Ruby : passager / mod_rack
Autres conseils
Je ne pense que c'est possible,
- Le même thread / processus fourchue peut être au service de pages de différents serveurs virtuels. Donc, si elle a chargé python seulement, ce qui se passe quand il a besoin de servir rubis?
- Pour des raisons 1, certaines directives ne sont que serveur web, et non Virtualhost spécifiques. MaxRequestsPerChild, LoadModule etc sont tels.
Je pense que la seule façon est d'avoir un serveur web « proxy » qui envoie des demandes aux serveurs réels ...
Le serveur proxy a une liste de noms de domaine -> Serveur langue de côté, et ne fait rien d'autre que la redirection transparente au serveur réel correcte
Il y a serveur réel N, chacun avec une configuration spécifique et une seule langue prise en charge et chargé ... chaque serveur écoutera sur un port différent bien sûr et, éventuellement, uniquement sur le périphérique loopback
Apache mod_proxy devrait faire le travail
Mes 2 cents
Mon idée est plusieurs processus Apache (chacun avec différents config) écoute sur différentes adresses et / ou ports et un proxy http (calmar ou apache) dans la redirection vers le serveur frontal respectif. Cela a un avantage supplémentaire de la mise en cache possible.