Mam stronę internetową (z ESI), która używa odwrotnego proxy Symfony2 do buforowania. Średnia odpowiedź wynosi około 100ms. Próbowałem zainstalować Varnish na serwerze, aby go wypróbować. Poszłam za krokiem guide from Symfony cookbook, usunąłem wszystko w folderze cache
, ale folder http_cache
wciąż był tworzony, gdy go wypróbowałem. Pomyślałem więc, że mógłbym wypróbować komentarz $kernel = new AppCache($kernel);
z app.php
. To działało całkiem dobrze. http_cache
nie został stworzony już i przez varnishstat, Lakier wydawało się działać:Jak prawidłowo ustawić lakier do witryn Symfony2?
12951 0.00 0.08 cache_hitpass - Cache hits for pass
1153 0.00 0.01 cache_miss - Cache misses
To było z około 14.000 wniosków, więc pomyślałem, że wszystko będzie w porządku. Ale po echolowaniu dowiedziałem się, że odpowiedzi wzrosły do ~ 2 sekund.
Apache działa na porcie 9000 i Lakieru na 8080. Więc echo używałem echoping -n 10 -h http://servername/ X.X.X.X:8080
.
Nie mam pojęcia, co może być nie tak. Czy są jakieś dodatkowe ustawienia potrzebne do użycia Varnish z Symfony2? Czy po prostu robię coś nie tak?
Na życzenie, oto mój default.vcl
z modyfikacjami, które dotychczas zrobiłem.
znalazłem 2 problemy z lakierem w domyślnej konfiguracji:
- to nie wnioski cache z cookies (i wszyscy w mojej aplikacji jest sesja przydzielony)
- ignoruje
Cache-Control: no-cache
nagłówka
Więc dodałem warunki dla tych przypadków do mojej konfiguracji i działa całkiem dobrze teraz (~ 175 req/s z ~ 160 z odwrotnym proxy S2 - ale szczerze, spodziewałem się trochę więcej). Po prostu nie mam pojęcia, jak sprawdzić, czy wszystko jest w porządku, więc wszelkie dane wejściowe są mile widziane.
Większość stron ma pamięć podręczną zróżnicowaną według plików cookie, z s-maxage
1200. Typowe pliki ESI nie są urozmaicone przez pliki cookie, z s-maxage
dość nisko (artykuły, listy artykułów). Strony profilów użytkowników nie są w ogóle buforowane (no-cache
) i nie jestem do końca pewien, czy ESI zawiera je nawet w pamięci podręcznej Varnish. Tylko ESI, które są zmieniane za pomocą plików cookie, jest nagłówkiem z informacjami specyficznymi dla użytkownika (na 100% stron).
Wszystko w tym poście jest lakierem 3.X specyficznym (osobiście używam wersji 3.0.2).
Również po kilku tygodniach wkopywania się w to, nie mam pojęcia, co robię, więc jeśli znajdziesz coś dziwnego w konfiguracjach, po prostu daj mi znać.
5 centów na podstawie moich ostatnich doświadczeń. Wszystko zależy od konfiguracji Vasnish, a zwłaszcza od tego, czy masz wystarczająco dużo dostępnej pamięci. Czy mógłbyś pokazać swoje 'sub vcl_recv',' sub vcl_fetch' i 'backend'? –
Zaktualizowany oryginalny wpis z konfiguracjami. Jeszcze jedno, co przychodzi mi do głowy to ciasteczka użytkownika (i może te śledzące). Każda prośba na naszej stronie je posiada. Ale nie rozumiem, dlaczego program varnishstat twierdzi, że buforuje wtedy 90% żądań. Nigdy nie mieliśmy z nimi problemów, gdy użyliśmy odwrotnego proxy Symfony2. –
Mam podobne 'vcl_recv' na mojej instalacji, chociaż mam również te linie:' set req.http.X-Forwarded-Port = "80"; set req.http.X-Forwarded-Proto = "http"; ' –