Nginx com HTTP2 habilitado baixa tudo

2

Atualizei recentemente o nginx para o 1.9.7, que vem com suporte a http2.

Ao habilitar http2 em um dos meus vhosts, todas as páginas que o nginx deve veicular a partir desse vhost serão baixadas. Eu testei isso na versão mais recente do Chrome, Safari e Chrome para Android. Todos tiveram o mesmo resultado de baixar e salvar o nome da página que eu naveguei, mesmo que a página não existisse no servidor. A página salva no computador nunca continha o conteúdo real dele no servidor. Foi um arquivo estranho que continha a mesma string estranha de 1kb). Tentei testar diferentes extensões, para ter certeza de que não era um problema com o php-fpm, cada extensão baixada.

configuração do vhost:

server {
    listen          <ip>:80 http2;
    server_name     testsite.dev;

    index   index.php index.html index.htm;
    root /home/sites/test/www;

    access_log /var/log/nginx/sites/testsite-access_log;
    error_log /var/log/nginx/sites/testsite-error_log;

#   location / {
#               try_files $uri $uri/ /index.php;
#   }

    location = /favicon.ico {
            access_log off;
            log_not_found off;
    }

    gzip off;

    location ~ \.php$ {
            try_files $uri =404;
            include /etc/nginx/fastcgi_params;
            fastcgi_pass unix:/var/run/php-fpm/testsite.socket;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param open_basedir "/home/sites:/tmp:/usr/share/pear:/var/lib/php/session/";
    }

}

Se eu remover a http2 da diretiva listen , o site funcionará 100% como esperado e exibirá os arquivos normalmente.

Alguma ideia de por que isso está acontecendo? A pesquisa no google parece apenas produzir resultados sobre o download de arquivos .php (causado por um php-fpm mal configurado).

Editar: o arquivo baixado sempre tem isso:

Quando aberto no TextEdit:

ġˇˇˇˇˇˇ

Quando aberto no Sublime Text 3:

0000 1204 0000 0000 0000 0300 0000 8000
047f ffff ff00 0500 ffff ff00 0004 0800
0000 0000 7fff 0000 0000 0807 0000 0000
0000 0000 0000 0000 01
    
por sodaross 07.12.2015 / 04:00

1 resposta

4

Geralmente espera-se que o http2 seja executado em SSL / TLS, tanto o Chrome quanto o Firefox suportam apenas HTTP2 criptografado.

Você recebe o mesmo erro ao adicionar http / 2 a ssl, por exemplo, listen 443 ssl http2

    
por 07.12.2015 / 05:22

Tags