pepe2k napisał/a:Zupełnie się z tym nie zgadzam i nie lubię jak ktoś strzela twierdzeniem ("w benchmarkach PHP wygrywa Apache") bez podawania konkretnych źródeł, bo na każdy taki argument można znaleźć drugi, który pokazuje, że jest zupełnie odwrotnie (powiedzmy, że nie korzystamy z mod_php w Apache i już sprawa się całkiem odwraca).
Niestety, nie pamiętam już, co to były za testy. Wiem, że jak z pół roku temu interesowałem się tematem, to generalnie trafiałem na takie, gdzie przeważał Apache (oczywiście, że z mod_php - czemu ktoś miałby go nie używać, skoro jest zoptymalizowany dla Apache'a?). Jednak muszę przyznać, że jak teraz zajrzałem do sieci, to znalazłem sporo takich z przewagą dla nginx.
pepe2k napisał/a:Stosowanie na jednej maszynie, w dodatku takiej klasy jak RPi, przy omawianym w wątku problemie, dwóch instancji dwóch różnych serwerów, tylko po to żeby jeden serwował statyczny content, bo jest teoretycznie w tym szybszy, to moim zdaniem jakieś nieporozumienie - to nie ta skala problemu.
Zgodzę się, że jest to przekombinowane pod względem administracyjnym, niewarte zachodu w takiej konfiguracji. Jednakże ja u siebie tak to mam skonfigurowane, działa, dlatego proponuję. Na pewno problemem nie jest działanie dwóch serwerów jednocześnie na malince. Kiedy nie ma żądań, procesy Apache i nginx są uśpione, więc nie konkurują. A jeśli chodzi o RAM: przy wszystkich tych wymienionych wcześniej przeze mnie uruchomionych usługach, w tym trzymaniu kilkudziesięcio-MB bazy w ramdysku, nie zużywam nawet połowy (patrzymy na buffers/cache):
total used free shared buffers cached
Mem: 462 376 85 0 30 183
-/+ buffers/cache: 162 299
pepe2k napisał/a:Co więcej, akurat wydajność serwera i tak w ostatecznym rozrachunku, przy serwowaniu stron dynamicznych, ma raczej niewielki wpływ na końcową wydajność całej aplikacji. To interpreter PHP jest, do pary z bazą, najbardziej zasobożerny i jak już ktoś naprawdę wie jak używać PHP, to korzysta z akceleratorów itp. i potrafi tak całość skonfigurować, że będzie działać tak samo wydajnie, niezależnie od typu zastosowanego serwera.
Z ciekawości uruchomiłem ownCloud na nginx, bo z nim mam największe problemy. Mierzyłem w przeglądarce czasy ładowania, raz na nginx, raz na Apache. Konfiguracja PHP ta sama. Różnice w czasach były rzędu maks. 10-20%, ale nie na korzyść konkretnego serwera. Nie było reguły: raz był szybszy ten, raz - tamten. Proszę nie uważać tego za obiektywny test, bo wiadomo, obciążenie w systemie przez inne usługi nie jest stałe. Pokazuje to tylko, że Apache nie jest na tyle gorszy wydajnościowo, żeby z niego rezygnować.
pepe2k napisał/a:Zasugerowałem rezygnację z Apache, bo jest to zasobożerny kombajn z milionem opcji, możliwości i setką opcji konfiguracyjnych, z których w ostateczności wykorzystuje się najczęściej... kilka. Moim zdaniem, przy określonych przez autora wątku wymaganiach (kilkanaście jednoczesnych połączeń to chyba nawet nie jest "wymaganie") nie ma po prostu sensu stosowania Apache'a, a zaoszczędzone zasoby można "podarować" innym uruchomionym procesom/zadaniom.
Dla mnie pewna funkcjonalność Apache jest kluczowa, dlatego z niej nie zrezygnuję, np. mod_rewrite. Żeby dla powyższego testu uruchomic ownCloud na nginx musiałem grzebać w pliku konfiguracyjnym serwera, tam ustalać rewrite'y, gdy tymczasem stawiając coś pod Apache nie musisz robić nic, bo praktycznie każda aplikacja internetowa jest dziś do niego przystosowana, a wręcz rzekłbym śmielej: wiele z nich nie jest przystosowanych do innych serwerów niż Apache, głównie ze względu na mod_rewrite.
Co do zasobów, odniosłem się wyżej. Co z tego, że Apache zużywa znacznie więcej pamięci operacyjnej, jeżeli jest jej pod dostatkiem?