Apache: Virtual mit [PHP | Python | Rubin] Unterstützung
-
23-08-2019 - |
Frage
ich mit mehreren Sprachen am Experimentieren (Python, Ruby ...), und ich würde gerne wissen, ob es einen Weg gibt optimieren mein Apache Server zu laden bestimmen Module nur in sicher Virtualhost, zum Beispiel:
http://myapp1 <- just with Ruby support
http://myapp2 <- just with Python support
http://myapp3 <- just with Php support
...
Danke.
Lösung
Jedes Apache Arbeiter Lasten jeden Modul, so dass es nicht möglich ist, innerhalb von Apache selbst zu tun.
Was Sie tun müssen, ist Ihre Sprachmodule zu bewegen, um zu Apache Arbeiter externe Prozesse.
Dies ist für Ihre Sprachen mit den folgenden Modulen durchgeführt:
- PHP : mod_fastcgi . Weitere Informationen:. Apache + Chroot + FastCGI
- Python : mod_wsgi in Daemon-Modus .
- Rubin : Fahrgast- / mod_rack
Andere Tipps
Ich denke nicht, das ist möglich,
- Der gleiche Thread / gegabelte Prozess könnte dienen Seiten aus verschiedenen Virtual. Also, wenn es nur Python geladen ist, was passiert, wenn es Ruby dienen muss?
- Für Grund 1, bestimmte Richtlinien sind Web-Server nur, und nicht Virtual spezifisch. MaxRequestsPerChild, LoadModule- usw. sind so.
Ich denke, der einzige Weg ist, einen „Proxy“ Web-Server zu haben, die Anfragen an den realen Servern entsendet ...
Der Proxy-Server eine Liste von Domain-Namen hat -> Server Side Sprache, und tut nichts anderes, als transparent für den richtigen realen Server umleiten
Es gibt N reale Server, die jeweils mit einer bestimmten Konfiguration und einer einzigen Sprache unterstützt und geladen ... jeder Server auf einem anderen Port natürlich hören und schließlich nur auf dem Loopback-Device
Apache mod_proxy sollte den Job
Meine 2 Cent
Meine Idee ist, mehrere Apache-Prozesse (jeweils mit verschiedenen config) hören auf verschiedene Adressen und / oder Ports und einen HTTP-Proxy (Tintenfisch oder Apache) im vorderen Umleiten zu dem jeweiligen Server. Dies hat einen möglichen zusätzlichen Vorteil Caching.