
Ich würde gerne wissen, ob dies tatsächlich möglich ist, aber ich bin sicher, dass ich eine Vorführung bei einem unserer alten AWS TAMs gesehen habe.
Ich bediene PHP-FPM-Container (Port 9000) aus ECS, das eine PHP-Anwendung hostet. Ich möchte die Nginx-Box(en) nur durch einen ALB ersetzen.
Grundsätzlich sollten Anfragen über Port 80 an den ALB den Einstiegspunkt der Anwendung an Port 9000 mit den ursprünglichen Anfragedaten ausführen.
Ich habe versucht, mit den Zielgruppen herumzuspielen, kann aber nicht herausfinden, wie ich die gleiche ProxyPass-Funktionalität ausführen kann, die nginx bereitstellt.
Ist das möglich? Und wenn ja, wie?
Antwort1
Ich würde gerne wissen, ob dies tatsächlich möglich ist, aber ich bin sicher, dass ich eine Vorführung bei einem unserer alten AWS TAMs gesehen habe.
Ich freue mich auf diese Lösung.
Nach meinem Verständnis bin ich zu dem Schluss gekommen, dass PHP-FPM hinter NGINX die einfachste Lösung ist. Gründe:
- FastCGIist ein binäres Protokoll zur Verbindung interaktiver Programme mit einem Webserver. Daher ist der von PHP-FPM bereitgestellte Port 9000 direkt hinter einem AWS ELB nicht geeignet.
- Integrierter Webserver von PHPsollte nicht in Produktionsumgebungen verwendet werden.
- Es ist keine gute Praxis, denselben Server als Webserver und Anwendungsserver zu verwenden. Die Ressourcen des Anwendungsservers werden vom Webserver beansprucht und umgekehrt. Jeder Server hat seine Vorteile. Wir verwenden NGINX, da es sich als Webserver bewährt hat. Wir verwenden PHP-FPM, da dies die primäre PHP FastCGI-Implementierung ist.Wir sollten keine AK-47 verwenden, um eine Maus zu töten, wir sollten eine Mausefalle verwenden.
- Django + Gunicorn-Apps hinter einem AWS ELB funktionieren reibungslos, bis ein langsamer Client anfängt, Anfragen zu senden. NGINX erleichtert den Umgang mit langsamen Clients, da es vollständige Anfragen (alle TCP-Pakete) puffert und an Gunicorn weiterleitet. Ref:Gunicorn-Bereitstellung. Dies gilt auch für PHP-FPM.
- NGINX erleichtert das Bereitstellen statischer Dateien und komprimiert sie mit GZIP. Allerdings sollten statische Dateien mit einem Objektspeicher wie S3 bereitgestellt werden.