„Lepszy” jest naprawdę subiektywny. To zależy od twoich przypadków użycia ...
voretaq7,
7
Czasami proste pytanie radzi sobie lepiej niż złożone. Jestem bardzo zaniepokojony takimi działaniami ludzi, którzy zamknęli to pytanie, zakładając, że nie było to dobre w stosunku do „oryginalnego formatu pytań i odpowiedzi”. Poszukuję tego tematu i byłem bardzo zainteresowany wynikiem tej debaty.
Roger
lakier ma potężną konfigurację vcl, czyszczenie, pamięć podręczna odwrotnego proxy, ESI nginx może współpracować z FCGI, pamięć podręczną odwrotnego proxy, ssi, brak czyszczenia (może być moduł) pod względem wydajności są one prawie takie same dla plików statycznych, buforowania ... jeśli masz jakieś pytanie, na które mogę pomóc
Bogdan Cosmin
Odpowiedzi:
14
Znalazłem lakier ~ 5% szybciej dla małych plików statycznych niż nginx - lakier przed serwerem Apache lub lakier przed serwerem aplikacji WWW byłby dużym zyskiem; ale przed nginx korzyści są dość znikome (szczególnie biorąc pod uwagę koszty ogólne i dodatkową złożoność)
Czy możesz podać jakieś wyniki testów na poparcie tego? Co jeśli już używam nginx + opcache. Czy zatem jest jakaś korzyść ze stosowania lakieru?
Poważny
23
Po pierwsze, aby wyjaśnić: Nginx jest serwerem internetowym, który obejmuje wszystkie funkcje i złożoność. Ma również funkcję buforowania, ale nie jest to głównym celem projektu.
Lakier nie jest serwerem internetowym. Nie może wypełnić tej roli (zresztą nie bez naprawdę złego VCL). Jego rolą jest buforowanie zawartości dostarczanej przez inny serwer. W razie potrzeby może zmienić żądanie lub odpowiedź.
Jeśli nginx może obsłużyć twój ruch, to wystarczy. Jeśli nginx nie jest w stanie dotrzymać kroku, to jednym ze sposobów na zwiększenie jego pojemności jest umieszczenie pamięci podręcznej przed nią i posiadanie przez nią pamięci podręcznej możliwie największej liczby żądań.
Jako przykład używamy Apache do uruchamiania wielu stosunkowo złożonych stron PHP z klastra serwerów WWW. Kiedy zaczęliśmy mieć problemy z pojemnością, umieściliśmy parę serwerów Varnish przed klastrem Apache. Hosty Varnish obsługują teraz 85% wszystkich żądań przychodzących, nie zawracając sobie głowy procesorem Apache.
Czyli Varnish buforuje dynamiczną zawartość generowaną przez PHP? A może po prostu inne rzeczy?
Alix Axel,
Lakier przechowuje w pamięci podręcznej wszystko, co kazałeś buforować. Może buforować tylko dane wyjściowe PHP, tylko pliki statyczne, oba lub żadne. To bardzo potężne narzędzie.
Insyte,
Pytałem o twój konkretny przykład. Zaskakuje mnie, jak można buforować zawartość dynamiczną bez zepsucia aplikacji dynamicznej (sesje PHP na początek). Buforowanie zawartości statycznej wydaje mi się nieco zbędne.
Alix Axel,
3
To zależy od zawartości dynamicznej. Powiedz na przykład, że strona jest postem na blogu z komentarzami. Wygenerowanie wątku komentarza może być bardzo kosztowne, ale buforowanie go przez 5 minut jest całkowicie akceptowalne. Z drugiej strony, buforowanie zawartości dynamicznej zwracanej przez aplikację poczty internetowej byłoby oczywiście problematyczne. Możesz nawet utworzyć mieszany przypadek: buforuj pełny wynik aplikacji e-commerce, ale powiedz lakiernikowi, aby oddzwonił do backendu i zapełnił wskaźnik koszyka.
Odpowiedzi:
Znalazłem lakier ~ 5% szybciej dla małych plików statycznych niż nginx - lakier przed serwerem Apache lub lakier przed serwerem aplikacji WWW byłby dużym zyskiem; ale przed nginx korzyści są dość znikome (szczególnie biorąc pod uwagę koszty ogólne i dodatkową złożoność)
źródło
Po pierwsze, aby wyjaśnić: Nginx jest serwerem internetowym, który obejmuje wszystkie funkcje i złożoność. Ma również funkcję buforowania, ale nie jest to głównym celem projektu.
Lakier nie jest serwerem internetowym. Nie może wypełnić tej roli (zresztą nie bez naprawdę złego VCL). Jego rolą jest buforowanie zawartości dostarczanej przez inny serwer. W razie potrzeby może zmienić żądanie lub odpowiedź.
Jeśli nginx może obsłużyć twój ruch, to wystarczy. Jeśli nginx nie jest w stanie dotrzymać kroku, to jednym ze sposobów na zwiększenie jego pojemności jest umieszczenie pamięci podręcznej przed nią i posiadanie przez nią pamięci podręcznej możliwie największej liczby żądań.
Jako przykład używamy Apache do uruchamiania wielu stosunkowo złożonych stron PHP z klastra serwerów WWW. Kiedy zaczęliśmy mieć problemy z pojemnością, umieściliśmy parę serwerów Varnish przed klastrem Apache. Hosty Varnish obsługują teraz 85% wszystkich żądań przychodzących, nie zawracając sobie głowy procesorem Apache.
źródło