Apache & Nginx. Połączone jednym łańcuchem (część 2)

W ubiegłym tygodniu w pierwszej części tym artykule opisaliśmy, jak działa połączenie Apache i Nginx w Timeweb. Jesteśmy bardzo wdzięczni naszym czytelnikom za pytania i aktywną dyskusję! Dziś opowiadamy, jak zrealizowano dostępność wielu wersji PHP na jednym serwerze i dlaczego gwarantujemy bezpieczeństwo danych naszym klientom.

Apache & Nginx. Połączone jednym łańcuchem (część 2)
Hosting wirtualny (Hosting współdzielony) zakłada, że na jednym serwerze znajduje się wiele kont klientów. Na koncie jednego klienta zazwyczaj znajduje się kilka stron. Strony działają zarówno na gotowych CMS (np. Bitrix), jak i na rozwiązaniach dedykowanych. W związku z tym wymagania techniczne dla wszystkich systemów są różne, dlatego w ramach jednego serwera należy zarządzać wieloma wersjami PHP.

Jako główny serwer WWW używamy Nginx: przyjmuje on wszystkie połączenia zewnętrzne i dostarcza statyczną zawartość. Pozostałe żądania przesyłamy dalej do serwera WWW Apache. I tu zaczyna się magia: dla każdej wersji PHP uruchomiony jest oddzielny egzemplarz Apache, który nasłuchuje na określonym porcie. Ten port jest zapisany w wirtualnym hoście strony klienta.

O pracy schematu współdzielonego można przeczytać bardziej szczegółowo w pierwszej części artykułu.

Apache & Nginx. Połączone jednym łańcuchem (część 2)
Schemat współdzielony

Ważne jest, aby zaznaczyć, że instalujemy pakiety PHP dla różnych wersji, ponieważ zazwyczaj w wszystkich dystrybucjach znajduje się tylko jedna wersja PHP.

Bezpieczeństwo przede wszystkim!

Jednym z głównych zadań hostingu wirtualnego jest zapewnienie bezpieczeństwa danych klienta. Różne konta, będąc na jednym serwerze, są samodzielne i niezależne. Jak to działa?

Pliki stron są przechowywane w katalogach domowych samych użytkowników, a wirtualne hosty serwerów WWW wskazują odpowiednie ścieżki. Ważne jest, aby serwery WWW, Nginx i Apache, miały dostęp do końcowych plików danego klienta, ponieważ serwer WWW uruchamiany jest tylko przez jednego użytkownika.

Dla Nginx używamy łaty zabezpieczeń opracowanej przez zespół Timeweb: ta łatka zmienia użytkownika na tego, który jest określony w pliku konfiguracyjnym serwera WWW.

U innych dostawców hostingu ten problem może być rozwiązany, na przykład, za pomocą manipulacji z rozszerzonymi uprawnieniami systemu plików (ACL).

Do pracy Apache używany jest moduł wieloprocesowy mpm-itk. Umożliwia to uruchomienie każdego VirtualHost z własnym identyfikatorem użytkownika i identyfikatorem grupy.
Apache & Nginx. Połączone jednym łańcuchem (część 2)
W ten sposób, dzięki operacjom opisanym powyżej, otrzymujemy bezpieczne, izolowane środowisko dla każdego klienta. Z równoczesnym rozwiązaniem problemów ze skalowalnością dla hostingu współdzielonego.

Jak zrealizowano połączenie Apache i Nginx, można przeczytać w pierwszej części naszym artykule. Ponadto tam również opisana jest alternatywna konfiguracja za pomocą schematu Dedykowanego.

Jeśli masz jakiekolwiek pytania do naszych ekspertów, pisz w komentarzach. Postaramy się odpowiedzieć na wszystko lub opisać rozwiązanie problemu bardziej szczegółowo w kolejnych artykułach.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster