In der letzten Woche haben wir in diesem Artikel beschrieben, wie die Verbindung zwischen Apache und Nginx bei Timeweb aufgebaut ist. Wir danken den Lesern herzlich für ihre Fragen und die aktive Diskussion! Heute erklären wir, wie die Verfügbarkeit mehrerer PHP-Versionen auf einem Server umgesetzt ist und warum wir die Sicherheit der Daten unserer Kunden garantieren.

Virtueller Hosting (Shared-Hosting) bedeutet, dass auf einem Server viele Kundenkonten abgelegt sind. Auf dem Konto eines einzelnen Kunden befinden sich in der Regel mehrere Websites. Die Websites laufen sowohl auf gängigen CMS (z. B. Bitrix) als auch auf individuellen Lösungen. Daher sind die technischen Anforderungen aller Systeme unterschiedlich, weshalb es notwendig ist, mehrere PHP-Versionen innerhalb eines Servers zu verwalten.
Als primären Webserver verwenden wir Nginx: Er nimmt alle externen Verbindungen entgegen und liefert statischen Inhalt aus. Die übrigen Anfragen leiten wir weiter an den Webserver Apache. Hier beginnt die Magie: Für jede PHP-Version läuft eine separate Instanz von Apache, die einen bestimmten Port abhört. Dieser Port wird im virtuellen Hosting der Kundenwebsite festgelegt.
Über die Funktionsweise des Shared-Schemas können Sie ausführlicher lesen in .

Shared-Schema
Es ist wichtig zu beachten, dass wir PHP-Pakete für verschiedene Versionen installieren, da in der Regel in allen Distributionen nur eine einzige PHP-Version enthalten ist.
Sicherheit zuerst!
Eine der Hauptaufgaben des virtuellen Hostings besteht darin, die Sicherheit der Kundendaten zu gewährleisten. Verschiedene Konten, die sich auf einem Server befinden, sind eigenständig und unabhängig. Wie funktioniert das?
Die Dateien der Websites werden in den Home-Verzeichnissen der Benutzer gespeichert, und im virtuellen Hosting der Webserver werden die erforderlichen Pfade angegeben. Dabei ist es wichtig, dass die Webserver, Nginx und Apache, Zugriff auf die endgültigen Dateien eines bestimmten Kunden erhalten, da der Webserver nur von einem Benutzer gestartet wird.
Für Nginx wird ein Sicherheitspatch verwendet, der vom Team von Timeweb entwickelt wurde: Dieser Patch ändert den Benutzer auf den, der in der Konfigurationsdatei des Webservers angegeben ist.
Bei anderen Hosting-Anbietern kann dieses Problem beispielsweise durch Manipulationen an den erweiterten Datei-Berechtigungen (ACL) gelöst werden.
Für den Betrieb von Apache wird ein Multiprocessing-Modul verwendet . Es ermöglicht, jeden VirtualHost mit einer eigenen Benutzer-ID und Gruppen-ID zu starten.

Auf diese Weise erhalten wir dank der oben beschriebenen Vorgänge eine sichere, isolierte Umgebung für jeden Kunden. Gleichzeitig lösen wir auch die Skalierungsprobleme für Shared-Hosting.
Wie die Verknüpfung von Apache und Nginx umgesetzt wurde, können Sie in unserem Artikel nachlesen. Außerdem wird dort eine alternative Konfiguration über das Dedicated-Schema beschrieben.
Wenn Sie Fragen an unsere Experten haben, schreiben Sie in die Kommentare. Wir bemühen uns, alles zu beantworten oder die Lösung des Problems ausführlicher in den kommenden Artikeln zu beschreiben.
Quelle: habr.com
