Myślę o architekturze nowego serwera WWW. Czy posiadanie Varnish jako pamięci podręcznej przed Nginx jako odwrotnego serwera proxy i podawanie plików statycznych przed apache do wszystkich ciężkich operacji podnoszenia byłoby dobrym pomysłem?
Zamierzam uruchamiać aplikacje php i ruby na szynach.
Czy będzie za dużo narzutów, przesyłając żądania php do apache przez dwa inne procesy?
Wielkie dzięki!
źródło
Lakier nie obsługuje (jeszcze) kompresji gzip, więc może być pomysł zamiany go z nginx z przodu, aby skompresować to, co lakier wysyła. Ponieważ lakier i nginx nie walczą o te same zasoby (nginx używa procesora do kompresji gzip, a lakier używa pamięci), powinny działać płynnie na tym samym komputerze.Lakier obsługuje teraz kompresję gzip , więc jeśli nie potrzebujesz zakończenia SSL (jak sugerowano w komentarzach), sugerowałbym skontaktowanie lakieru bezpośrednio z Internetem.
Dla http:
Dla https:
Jeśli chcesz tam również apache (dla wszechobecnej obsługi mod_foobar), umieściłbym go między lakierem a aplikacją
Aktualizacja: Zaktualizowano w celu uwzględnienia obsługi gzip w lakierze 3.0. Dodano ssl / esi zgodnie z sugestiami w komentarzach
źródło
Wysokość kosztów ogólnych nie powinna być znacząca. Zakładam, że po części chcesz, aby te dwie warstwy były skalowalne; w takim przypadku najprawdopodobniej zobaczysz, w odniesieniu do apache, że lakier i nginx nie pracują bardzo ciężko.
Jeśli wszystkie trzy warstwy na jednym komputerze, zanim osiągniesz pojemność samego serwera, powinno to mieć mniejszy wpływ na wydajność.
Alternatywnie, dlaczego nie lakierować + nginx z pasażerem? Korzystałem z tej konfiguracji w przeszłości i nginx korzystający z pasażera jest stosunkowo lekki i działał całkiem dobrze. Może warto pomyśleć o tym, jeśli nie jesteś żonaty z apache'em prowadzącym swój stos szyn.
źródło
Jestem administratorem sys dla początkowej platformy e-commerce. Używamy lakieru + nginx przed naszym stosem PHP / Apache i zadziałało to cuda.
Mamy aplikację o wysokim zużyciu pamięci, a aplikacja zużywała około 15-20 gigabajtów pamięci RAM na węzeł sieciowy, a po umieszczeniu lakieru z przodu jest teraz około 8 gramów pamięci RAM na węzeł. Nigdy się nie wzbogacili.
Więc bardzo go polecam.
źródło
Używam Drupala z modułem boost na serwerze Apache + PHP + MySQL, ale przed nimi używam Nginx z włączoną funkcją gzip-static i używam wyników boost do obsługi użytkowników.
A na dodatek używam lakieru, wszystkie na tym samym komputerze, mam dobre wyniki.
Używam również Nginx do poprawiania nagłówków, których Drupal nie radzi sobie dobrze w buforowaniu.
źródło
To nie jest dobry pomysł, chyba że potrzebujesz czegoś takiego jak ESI. Nginx ma własny system buforowania, który działa lepiej .
źródło
Apache może być użyty do zakończenia SSL (odszyfrowania), sprawdź http://noosfero.org/Development/Varnish#SSL
źródło