Nginx Gzip não funciona

1

Como o título dizia, o Nginx Gzip não está funcionando, eu tentei muitas configurações espalhadas pela internet, nenhuma funcionou, estou realmente frustrada quando coisas simples não funcionam.

gzip.conf:

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_min_length 256;
gzip_types
    text/plain
    text/css
    application/json
    application/javascript
    application/x-javascript
    text/xml
    application/xml
    application/xml+rss
    text/javascript
    application/vnd.ms-fontobject
    application/x-font-ttf
    font/opentype
    image/svg+xml
    image/x-icon;

Chrome:

ChromeAudit:

Curl:

Limpeiocacheetudocontinuaomesmo.

=======================

ATUALIZAÇÃO:

Eutesteiacompactaçãogzipem

link

e me deu:

masemChromemostra:

Firefox:

removedgzip_vary

*HostnamewasNOTfoundinDNScache*Trying192.168.200.240...*Connectedto192.168.200.240(192.168.200.240)port80(#0)>HEAD/js/main.jsHTTP/1.1>User-Agent:curl/7.35.0>Host:192.168.200.240>Accept:*/*>Accept-Encoding:deflate,gzip><HTTP/1.1200OKHTTP/1.1200OK<Date:Sat,03Dec201616:25:34GMTDate:Sat,03Dec201616:25:34GMT<Content-Type:application/javascriptContent-Type:application/javascript<Last-Modified:Fri,02Dec201603:20:46GMTLast-Modified:Fri,02Dec201603:20:46GMT<Connection:keep-aliveConnection:keep-alive<ETag:W/"5840e88e-18ce"
ETag: W/"5840e88e-18ce"
* Server nginx is not blacklisted
< Server: nginx
Server: nginx
< Expires: Sun, 03 Dec 2017 16:25:34 GMT
Expires: Sun, 03 Dec 2017 16:25:34 GMT
< Cache-Control: max-age=31536000
Cache-Control: max-age=31536000
< Content-Encoding: gzip
Content-Encoding: gzip

<
* Connection #0 to host 192.168.200.240 left intact

Without vary on Chrome:

nginx -V

nginx version: nginx/1.10.1
built with OpenSSL 1.0.1f 6 Jan 2014
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_flv_module --with-http_geoip_module=dynamic --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_mp4_module --with-http_perl_module=dynamic --with-http_random_index_module --with-http_secure_link_module --with-http_sub_module --with-http_xslt_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-stream=dynamic --with-stream_ssl_module --add-dynamic-module=/build/nginx-JCHwcf/nginx-1.10.1/debian/modules/headers-more-nginx-module --add-dynamic-module=/build/nginx-JCHwcf/nginx-1.10.1/debian/modules/nginx-auth-pam --add-dynamic-module=/build/nginx-JCHwcf/nginx-1.10.1/debian/modules/nginx-cache-purge --add-module=/build/nginx-JCHwcf/nginx-1.10.1/debian/modules/nginx-dav-ext-module --add-dynamic-module=/build/nginx-JCHwcf/nginx-1.10.1/debian/modules/nginx-development-kit --add-dynamic-module=/build/nginx-JCHwcf/nginx-1.10.1/debian/modules/nginx-echo --add-dynamic-module=/build/nginx-JCHwcf/nginx-1.10.1/debian/modules/ngx-fancyindex --add-dynamic-module=/build/nginx-JCHwcf/nginx-1.10.1/debian/modules/nchan --add-dynamic-module=/build/nginx-JCHwcf/nginx-1.10.1/debian/modules/nginx-lua --add-dynamic-module=/build/nginx-JCHwcf/nginx-1.10.1/debian/modules/nginx-upload-progress --add-dynamic-module=/build/nginx-JCHwcf/nginx-1.10.1/debian/modules/nginx-upstream-fair --add-dynamic-module=/build/nginx-JCHwcf/nginx-1.10.1/debian/modules/ngx_http_substitutions_filter_module
    
por John Pangilinan 03.12.2016 / 13:34

3 respostas

1

Parece que seu servidor está habilitado para gzip (veja a resposta de curl e o resultado da compactação checkzzip). Mas como você está usando a diretiva gzip_vary on; , você obtém o cabeçalho Vary: Accept-Encoding .

Então, basicamente, o servidor permite que o cliente decida link

Qual codificação usar. se ele já tiver o arquivo descompactado, ele não terá um arquivo compactado (parece estranho para mim também, mas é o que afirma o artigo que parece bem informado).

Sei que isso não é consistente com o que você vê no "cache de atualização difícil que limpa a página". Mas isso é uma pista, tente configurá-lo, reinicie o nginx e verifique novamente (E, claro, verifique se o gzip.conf está realmente sendo lido e usado pelo nginx)

    
por 03.12.2016 / 16:31
1

Foi o meu antivírus o tempo todo, problema semelhante a este post: nginx gzip ativado, mas não não gzipping

Achei que não foi porque eu desativei temporariamente o antivírus durante o teste, mas acho que o antivírus o descompacta mesmo quando está desativado.

E também que, mesmo que eu tenha o antivírus, outros sites que eu verifiquei são gzipped , estranho, então eu achei que não era o meu antivírus.

Mas eu testei em uma VM nova com apenas o chrome instalado e ela mostra gzip também no meu dispositivo móvel por meio de depuração remota.

Então eu instalei o antivírus na VM e o Content-Encoding: gzip desapareceu.

Também verifiquei em wireshark que o conteúdo é realmente gzipped . Mas de alguma forma o antivírus o descompacta.

A versão do Chrome no meu espaço de trabalho e na VM é a mesma.

Chrome Version 54.0.2840.99

    
por 04.12.2016 / 04:14
0

Eu sei que já faz muito tempo desde que isso foi respondido. Sim. É o software antivírus que descompactou o conteúdo antes da transmissão. A fim de enganar o software antivírus para manter o conteúdo GZIP, eu adicionei o mesmo cabeçalho de codificação de conteúdo ao nginx com um pequeno toque.

gzip on;
add_header Content-Encoding "gzip2";

Dessa forma, eu não precisei parar o antivírus rodando em segundo plano. Espero que isso ajude alguém que tenha o mesmo problema. Tudo começou com o IIS não gzipping conteúdo que me levou a adicionar NginX que não gzip o conteúdo também. Foi o antivírus sozinho!

    
por 25.10.2018 / 18:30

Tags