Nginx HTTP não funciona - baixa um arquivo chamado "download"

11

se eu visito meu site nginx com https, está funcionando, mas com http está baixando um arquivo chamado "download" (sem extensão alguma), 57 bytes e abrindo-o com o bloco de notas etc, apenas mostra coisas sem sentido.

Aqui está a minha configuração de vhost:

server {
    server_name www.domain.com domain.com;
    listen 80;

    return 301 https://domain.com$request_uri;
}

server {
    server_name www.domain.com
    listen 443 ssl;

    /* SSL Stuff */

    return 301 https://domain.com$request_uri;
}


server {
    server_name domain.com;
    index index.php index.html index.htm;
    listen 443 ssl;
    root /usr/share/nginx/domain.com;

    /* SSL Stuff */

    location / {
            try_files $uri $uri/ /index.php?$args;
    }


location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass unix:/run/php/php7.0-fpm.sock;
            fastcgi_param SCRIPT_FILENAME            $document_root$fastcgi_script_name;
            include fastcgi_params;
}

    location ~ /\. {
            deny  all;
    }

}

curl-v:

curl -v http:/domain.com * 
Rebuilt URL to: http://domain.com/ * 
Hostname was NOT found in DNS cache * 
Trying 175.*.*.*... * 
Connected to domain.com (175.*:*:*) port 80 (#0)
 > GET / HTTP/1.1 > User-Agent: curl/7.38.0 
> Host: domain.com > Accept: */* 
> * Connection #0 to host domain.com left intact 
▒▒
rzmpl
fonte
Esta configuração está OK. Verifique se você atualizado nginx, configurado firewall, ou qualquer outra coisa
Alexey Ten
Além disso, verifique comcurl -v http://domain.com
Alexey Ten
Obrigado pela sua resposta. Eu reiniciei várias vezes (tentei alterar partes das configurações, mas nada ajudou), meu firewall também está bom. Ao verificar com curl, recebo uma resposta estranha: ▒▒ apenas isso - não mostra o código-fonte como em https.
Rzmpl 28/05
O phpfpm deve estar em funcionamento e o soquete deve existir em /run/php/php7.0-fpm.sock.
Farhan 28/05
Faz. O PHP funciona - não acho que seja um problema de PHP. Tudo sobre HTTPS funciona, não importa se é php ou não. Mas se eu digitar http: // ou apenas o domínio (nesse caso, ele deve redirecionar para https), ele fará o download de um pequeno arquivo de 57 bytes chamado "download" - o Nginx error.log também não mostra nada.
Rzmpl 28/05

Respostas:

12

Eu descobri o que causou o problema: eu estava usando listen 80 http2;na minha configuração de vhost que aparentemente não funciona . Depois que eu removi o http2 da referida linha, ele agora está funcionando normalmente novamente!

rzmpl
fonte
Isso teria sido fácil para as pessoas descobrirem, se estivesse na sua pergunta. Você não deve omitir nada importante na próxima vez que fizer uma pergunta.
Michael Hampton
Eu não omiti nada. Como eu pude conhecê-lo de antemão? Não precisaria perguntar se eu sabia. Mas seja o que for, eu resolvi isso e é isso que importa.
Rzmpl 29/05
3
Você omitiu qualquer parte da sua configuração contida, listen 80 http2;que diz ser o problema. Isso tornou isso impossível para qualquer outra pessoa descobrir.
Michael Hampton
1
Que bom que você postou esta pergunta e seguiu com sua solução! Acabei de encontrar isso e não tinha ideia do que estava causando o download de arquivo aparentemente aleatório. A remoção http2de um site não SSL no servidor funcionou!
Graham Swan
Procurei em todos os lugares por isso, obrigado! Seria bom se o NGiNX emitisse um aviso de configuração quando isso for detectado.
aecend 24/03