O Safari não descompacta o conteúdo do gzip quando o Content-Encoding é gzip, gzip

2

O Safari para OSX, iOS e Windows está tendo problemas para descompactar o conteúdo do Gzip no meu servidor após uma revisão recente do servidor.

Mudei de 1 servidor com Apache e PHP5-FPM para 3 servidores. Um balanceador de carga e dois servidores executando o HHVM, todos usando Nginx.

Não consigo determinar o que causa o problema de descompressão. Isso acontece de forma consistente nos mesmos documentos, mas inconsistentemente em todo o site.

Este tópico carrega bem.
link

Este tópico não.
link

O que recebo no Safari é o conteúdo que se parece com isso.

����z�H�6xl]E6�//S�.j�Ey��]���r�����H�$J �@-]����%̥͕���@)R�$چ�,a�-22222ތÿ<����^�Q4v����p���?l���%�Zް]�����%�w�v����%�s�0l�>L�����_B����vp�������ہx��v������ݵ���{n� ���W;��^���bd��|׵&�����!=@j�{��-���;    ��Gܫ�Q���?�V�   �:�]�v�)&�Ж׍�8�^�p�m�FQ4yX����UV����I�珫�Zm�:���¶�G[[[w]�*F�=h��ձu��{���(�&tCi���3;��vu�ҬԪ�0L=��|�%�n�R%ÑmG%QE��b(��2�}�͚8!������q/��'���G

Este somente acontece no Safari.

Cromo? Trabalho. Google Chrome? Trabalho. IE10? Trabalho. Mozilla? Trabalho. Ópera? Trabalho. IceWeasle? Trabalho. Android Chrome? Trabalho. Navegador Dolphin? Obras.

Eu habilitei a depuração no Safari. Aqui estão os cabeçalhos de resposta.

Safari para Windows

Cache-Control:private, max-age=0
CF-RAY:20f2a2c627ff22ac-LAX
Connection:keep-alive
Content-Encoding:gzip, gzip
Content-Type:text/html; charset=UTF-8
Date:Sat, 01 Aug 2015 15:39:27 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Server:cloudflare-nginx
Transfer-Encoding:Identity
Vary:Accept-Encoding, Accept-Encoding
X-Frame-Options:SAMEORIGIN
X-Powered-By:HHVM/3.8.1

Por contraste, aqui está o Chromium, que funciona.

Chromium (Working)

cache-control:private, max-age=0
cf-ray:20f2a3b04a8d13c5-LAX
content-encoding:gzip
content-encoding:gzip
content-type:text/html; charset=UTF-8
date:Sat, 01 Aug 2015 15:40:05 GMT
expires:Thu, 19 Nov 1981 08:52:00 GMT
server:cloudflare-nginx
status:200 OK
vary:Accept-Encoding
vary:Accept-Encoding
version:HTTP/1.1
x-frame-options:SAMEORIGIN
x-powered-by:HHVM/3.8.1

Este é exatamente o mesmo documento. A única diferença parece ser que o Safari envia "keep-alive", que não está presente no Chromium. Talvez seja por isso que nunca descompacta? Nunca pára de esperar por mais coisas gzip?

Configuração Nginx para o Gzip. Isso se aplica a todos os três servidores (balanceador de carga e nós)

    gzip on;
    gzip_disable "msie6";

    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 32 8k;
    gzip_http_version 1.1;
    gzip_types text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;


    proxy_buffering off;

Além disso, aqui está a configuração de carga.

    upstream fruitbasket {
            server lime:443 weight=10;
            server lemon:443 weight=3;
    }

Eu tentei todas as configurações concebíveis para corrigir isso, mas nada ajudou.

Editar 1: depois de examinar os cabeçalhos de resposta de todos os outros navegadores, o Keep-Alive I mencionado não foi encontrado em nenhum deles.

Editar 2: posso confirmar que o problema é Content-Encoding:gzip, gzip . Qualquer página com um único gzip é carregada. O Safari não sabe o que fazer com esse tipo de codificação.

    
por Null 01.08.2015 / 18:23

1 resposta

1

Meu problema foi específico. O XenForo apresenta o gzip automático como uma opção de configuração no nível do aplicativo. Se você está tendo este problema, certifique-se de que seu aplicativo também não gzip antes de chegar ao seu servidor.

link

    
por 01.08.2015 / 19:10