Mam serwer nginx i nie mogę znaleźć żadnych informacji na temat wysyłania nagłówków Vary: Accept-Encoding dla plików CSS i JS. Czy ktoś ma informacje na ten temat?Set Vary: Accept-Encoding Header (nginx)
Dzięki!
Mam serwer nginx i nie mogę znaleźć żadnych informacji na temat wysyłania nagłówków Vary: Accept-Encoding dla plików CSS i JS. Czy ktoś ma informacje na ten temat?Set Vary: Accept-Encoding Header (nginx)
Dzięki!
To jest z nginx documentation.
gzip_vary syntax: gzip_vary on|off default: gzip_vary off context: http, server, location
Włącza nagłówek reakcji
"Vary: Accept-Encoding"
. Zauważ, że ten nagłówek powoduje, że IE 4-6 nie buforuje zawartości z powodu błędu (patrz 2).
Tam, jeśli po prostu dodasz gzip_vary on;
, powinien to zrobić.
Upewnij się również, że masz jedną z dyrektyw: gzip, gzip_static lub gunzip są aktywne.
Wewnątrz server {
domeny/subdomeny, że chcesz go ustawić, dodać
gzip on;
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_types text/plain application/x-javascript text/xml text/css;
gzip_vary on;
Zapisz plik i uruchom ponownie nginx.
o ile mogę powiedzieć, jest to jedyna poprawna odpowiedź. gzip_types jest tutaj kluczem, ponieważ domyślnie jest to tylko tekst/html, a więc zmienne nie będą włączone dla różnych typów zawartości. –
Pracowałem świetnie w moim pliku vhost na moim serwerze nginx. Dzięki! – jamescampbell
Prosty. W Nginx conf:
vim /etc/nginx/nginx.conf
Dodaj następujący blisko dna pod odcinku:
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
Wystarczy odkomentować parametr gzip_vary on;
i ponownie lub przeładować nginx usługę:
service nginx restart
To powinno rozwiązać problem. Jeśli używasz starej wersji nginx, być może musisz włączyć gzip on;
, ponieważ jest to wymagane, aby nagłówek differ działał.
Mam nadzieję, że to pomoże. FYI, dotyczy to wszystkich plików conf serwera/witryny, chyba że zostaną nadpisane w ich własnych blokach serwera. server {}
informacji źródło nginx, Apache i IIS: https://www.maxcdn.com/blog/accept-encoding-its-vary-important/
Wyłącz gzip_types przyniesie więcej problemów. –
Jeśli po wypróbowaniu innych odpowiedzi i wciąż widząc zablokować (np jeśli testujesz szybkość strony przy użyciu GTMetrix) dodaje sił help:
Upewnij się, że wszystkie twoje gzip_types są również ustawione w sekcji /etc/nginx/nginx.conf http.
Blok serwera w/etc/nginx/sites-available/* to jedno miejsce, w którym można ustawić różne nagłówki i gzip_types, ale w zależności od konfiguracji witryny możesz przetwarzać i zwracać pliki przed dotrzeć do tego fragmentu konfiguracji.
W /etc/nginx/nginx.conf znajdziesz sekcję "http" - tutaj jest także gzip_types i gzip_vary.
Dla mnie - CSS i JS są plikami statycznymi i były podawane przed naciśnięciem pliku (wordpress) nginx-sites (mam przed sobą lakier).
Dodanie pełnej listy gzip_types do sekcji http w pliku nginx.conf poprawiło mój problem.
Myślę, że to NIE jest poprawna odpowiedź - przynajmniej nie sam, a może nie dla wszystkich wersji nginx (to nie mogę powiedzieć). Tylko gzip_vary Wezwala gzip, jeśli jest wyłączony, ale zachowa domyślne gzip_types i nie włączy Vary dla zasobów innych niż domyślny mimet/text/html. http://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip (testowany na nginx 1.4.6) –
@AlanFranzoni to pytanie nie ma nic wspólnego z włączeniem gzip lub zakodowaniem innych typów zawartości, chodzi tylko o dodawanie nagłówka vary. – jbg
@jbg Myślę, że źle zrozumiałeś cel Vary, który jest często używany z kompresją (sprawdź https://www.fastly.com/blog/best-practices-for-using-the-vary-header). Jeśli gzip i vary nie mają ze sobą nic wspólnego, dlaczego opcja nginx ma nazywać się gzip_vary? –