Apache und Nginx. Verbunden durch eine Kette (Teil 2)

Letzte Woche um der erste Teil In diesem Artikel haben wir beschrieben, wie die Apache- und Nginx-Kombination in Timeweb erstellt wurde. Wir sind den Lesern für ihre Fragen und die aktive Diskussion sehr dankbar! Heute verraten wir Ihnen, wie die Verfügbarkeit mehrerer PHP-Versionen auf einem Server umgesetzt wird und warum wir unseren Kunden Datensicherheit garantieren.

Apache und Nginx. Verbunden durch eine Kette (Teil 2)
Virtuelles Hosting (Shared Hosting) geht davon aus, dass viele Kundenkonten auf einem Server gehostet werden. In der Regel enthält ein Kundenkonto mehrere Websites. Websites funktionieren sowohl mit vorgefertigten CMS (z. B. Bitrix) als auch mit benutzerdefinierten CMS. Daher sind die technischen Anforderungen aller Systeme unterschiedlich, sodass mehrere PHP-Versionen auf demselben Server verwaltet werden müssen.

Wir verwenden Nginx als Hauptwebserver: Er akzeptiert alle Verbindungen von außen und stellt statische Inhalte bereit. Wir leiten die verbleibenden Anfragen weiter an den Apache-Webserver. Hier beginnt die Magie: Jede PHP-Version führt eine separate Apache-Instanz aus, die an einem bestimmten Port lauscht. Dieser Port ist im virtuellen Host der Client-Site registriert.

Weitere Informationen zur Funktionsweise des Shared-Schemas finden Sie unter der erste Teil.

Apache und Nginx. Verbunden durch eine Kette (Teil 2)
Geteiltes Schema

Es ist wichtig zu beachten, dass wir PHP-Pakete für verschiedene Versionen installieren, da normalerweise alle Distributionen nur eine PHP-Version haben.

Sicherheit zuerst!

Eine der Hauptaufgaben des Shared Hostings besteht darin, die Sicherheit der Kundendaten zu gewährleisten. Verschiedene Konten, die sich auf demselben Server befinden, sind unabhängig und unabhängig. Wie es funktioniert?

Website-Dateien werden in den Home-Verzeichnissen der Benutzer selbst gespeichert und die erforderlichen Pfade werden im virtuellen Host der Webserver angegeben. Es ist wichtig, dass die Webserver Nginx und Apache Zugriff auf die endgültigen Dateien eines bestimmten Clients haben, da der Webserver nur von einem Benutzer gestartet wird.

Nginx verwendet einen vom Timeweb-Team entwickelten Sicherheitspatch: Dieser Patch ändert den Benutzer auf den in der Webserver-Konfigurationsdatei angegebenen Benutzer.

Bei anderen Hosting-Anbietern lässt sich dieses Problem beispielsweise durch Manipulation erweiterter Dateisystemrechte (ACL) lösen.

Apache verwendet zur Ausführung ein Multiprocessing-Modul mpm-itk. Dadurch kann jeder VirtualHost mit seiner eigenen Benutzer-ID und Gruppen-ID ausgeführt werden.
Apache und Nginx. Verbunden durch eine Kette (Teil 2)
Dank der oben beschriebenen Vorgänge erhalten wir somit eine sichere, isolierte Umgebung für jeden Kunden. Gleichzeitig lösen wir auch Skalierungsprobleme beim Shared Hosting.

Wie die Kombination aus Apache und Nginx umgesetzt wird, kann nachgelesen werden der erste Teil unser Artikel. Darüber hinaus wird dort auch eine alternative Konfiguration über das Dedicated-Schema beschrieben.

Wenn Sie Fragen an unsere Experten haben, schreiben Sie in die Kommentare. Wir werden versuchen, in den folgenden Artikeln alles zu beantworten bzw. die Lösung des Problems genauer zu beschreiben.

Source: habr.com

Kommentar hinzufügen