Co jest szybsze w wyświetlaniu stron PHP, Apache lub NGINX

15

Przeczytałem sporo o głównych zaletach uruchamiania NGINX przez Apache do obsługi plików statycznych . Jednak nigdy nie widziałem artykułu mówiącego o Apache vs NGINX do obsługi stron PHP.

Pytanie: co jest szybsze w wyświetlaniu stron PHP , Apache lub NGINX?

Raedwald
źródło

Odpowiedzi:

9

Osobiście uważam, że nginx zapewnia właściwy podział na rzeczy, które robi sam (odbieranie i przetwarzanie żądań HTTP) i to, co przekazuje innym procesom (dynamiczne generowanie strony). Chociaż konfigurowanie Apache do obsługi żądań PHP wymaga mniej wysiłku, uruchamianie wszystkiego w Apache stanowi nieco problem z bezpieczeństwem i konfiguracją (wszystkie pliki, do których mają dostęp wszystkie skrypty uruchamiane przez wszystkich użytkowników na serwerze, muszą być możliwe do odczytu / zapisu przez użytkownika że Apache działa jako, co oznacza, że ​​skrypty PHP jednego użytkownika mogą przeglądać dane innych użytkowników); uruchamianie każdej witryny PHP jako własnego użytkownika we własnym kontekście FastCGI jest znacznie lepszą opcją (kosztem nieco większej wstępnej konfiguracji, dopóki nie zostanie wybrana automatyzacja tworzenia witryny, aby zrobić właściwą rzecz).

Jeśli chodzi o „szybsze”, Apache z mod_php będzie prawdopodobnie szybszy na jednym żądaniu, o ile maszyna nie jest ograniczona zasobami (przekazywanie do zewnętrznego detektora FCGI, a następnie powrót nie jest tak szybkie). Jednak Apache jest znacznie grubszy ( szczególnie, gdy działa z mod_php), więc będziesz mógł obsłużyć większy ruch w nginx, zanim będziesz musiał uaktualnić do większego pudełka.

womble
źródło
5

Autor nginx mówi, że nginx ma na celu udostępnianie plików statycznych i bycie nakładką, przesyłając żądania wymagające dynamicznych stron na inne serwery, takie jak apache.

Innym dobrym pomysłem jest buforowanie dynamicznego żądania apache za pomocą nginx, jeśli dane są rzadko aktualizowane, na przykład zarchiwizowany post na blogu.

flashnik
źródło
2

W większości przypadków nginx. Dla projektów o dużym obciążeniu nginx + php + php-fpm jest doskonałym wyborem.

Valery Viktorovsky
źródło