gzip_proxied umożliwia dostęp do następujących opcji (niepełny):Jakie są opcje dla dyrektywy gzip_proxied? Dyrektywa
- upłynął
umożliwia kompresję jeżeli odpowiedź zawiera nagłówek „Wygasa” pole z wartością, która wyłącza buforowanie;- no-cache
włącza kompresję, jeśli nagłówek odpowiedzi zawiera pole "Cache-Control" z parametrem "no-cache";- no-store
włącza kompresję, jeśli nagłówek odpowiedzi zawiera pole "Cache-Control" z parametrem "no-store";- prywatne
włącza kompresję, jeśli nagłówek odpowiedzi zawiera pole "Cache-Control" z parametrem "prywatny";- no_last_modified
włącza kompresję, jeśli nagłówek odpowiedzi nie zawiera pola "Ostatnia modyfikacja";- no_etag
umożliwia kompresję jeśli nagłówek odpowiedź nie obejmują „ETag” pole;- auth
włącza kompresję, jeśli nagłówek żądania zawiera pole "Autoryzacja";
Nie widzę żadnego racjonalnego powodu, aby korzystać z większości tych opcji. Na przykład, dlaczego to, czy żądane proxy zawiera nagłówek Authorization
, czy też Cache-Control: private
, ma wpływ na to, czy chcę go zgadać czy nie?
Biorąc pod uwagę, że stare wersje Nginx strip ETags from responses when gzipping them, widzę przypadek użycia dla no_etag: jeśli nie masz Nginx skonfigurowany do generowania Etags dla swoich spakowane gzipem odpowiedzi, może wolisz, aby przejść na nieskompresowanego odpowiedzi z zamiast ETag, zamiast generować skompresowany bez ETag.
Nie mogę jednak wymyślić innych.
Jakie są zamierzone przypadki użycia każdej z tych opcji?
"* Koszt procesora próbowania zgasić go mniejszym jest prawdopodobnie niewystarczającym wykorzystaniem zasobów maszyny warstwy pośredniej *" - ale nie mówimy o gzipowaniu w warstwie proxy, prawda? Mówimy o gzipowaniu na backend Nginx, za warstwą proxy, która przekazała żądanie do tego backendu Nginx; warstwa proxy nie musi kompresować ani dekompresować samej odpowiedzi. (Nie ma to wpływu na ogólną siłę twojego punktu, wystarczy po prostu naciąganie). –
Punkt 1 (o gzipingu często nie jest wart zachowanych zasobów pamięci podręcznej, ponieważ zasoby pamięci podręcznej są często już zminimalizowane, a gzipowanie zminimalizowanych zasobów jest stratą czasu) jest bardzo mnie. Zasadniczo wydaje się to rozsądne, ale myślę, że w praktyce jest to nieprawda; ludzie, którzy [mierzyli efekt gzipowania minizowanej treści w innym miejscu na Stack Overflow] (http://stackoverflow.com/questions/807119/gzip-versus-minify) stwierdzili, że gzipowanie znacząco zmniejsza rozmiar pliku, nawet gdy zawartość jest gzipped jest już zminimalizowany. –
Natomiast punkty 2 i 3 są znacznie bardziej atrakcyjne! Jeśli mogę podać tl; dr: proxy potrzebują zazwyczaj zdekompresowanej wersji zawartości, którą przechowują, albo do obsługi agentów użytkownika, które nie obsługują gzip, ani do obsługi żądań o zakresie bajtów. Więc jeśli buforują to, proxy muszą rozpakować odpowiedź gzipowaną, kosztując czas procesora.Jedyną korzyścią, jaką otrzymasz w zamian, jest zmniejszenie wykorzystania przepustowości między serwerem proxy a zapleczem, ale w pewnych okolicznościach (takich jak proxy i zaplecze w tej samej sieci lokalnej) przepustowość proxy do backendu może być praktycznie nieograniczona. –