Nginx HTTP no funciona: descarga un archivo llamado "descargar"

11

si visito mi sitio nginx con https está funcionando, pero con http está descargando un archivo llamado "download" (sin extensión alguna), 57 bytes y abriéndolo con el bloc de notas, etc., solo muestra cosas gibberish.

Aquí está mi configuración 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
fuente
Esta configuración está bien. Compruebe si reinició nginx, configuró el firewall o alguna otra cosa
Alexey Ten,
Además, consulte concurl -v http://domain.com
Alexey Ten
Gracias por tu respuesta. Reinicié varias veces (intenté cambiar partes de configuraciones, pero nada ayudó), mi firewall también está bien. Al verificar con curl obtengo una respuesta extraña: ▒▒ solo esto: no muestra el código fuente como lo hace con https.
rzmpl
phpfpm debería estar en funcionamiento y el socket debería existir en /run/php/php7.0-fpm.sock.
Farhan
Lo hace. PHP funciona: no creo que sea un problema de PHP. Todo sobre HTTPS funciona, no importa si es PHP o no. Pero si escribo http: // o solo el dominio (en cuyo caso debería redirigir a https) simplemente descarga un pequeño archivo de 57 bytes llamado "descarga" - Nginx error.log tampoco muestra nada.
rzmpl

Respuestas:

12

Descubrí qué causó el problema: estaba usando listen 80 http2;mi configuración de vhost que aparentemente no funciona . ¡Después de que eliminé http2 de dicha línea, ahora está funcionando normalmente de nuevo!

rzmpl
fuente
Esto hubiera sido fácil de detectar para las personas, si hubiera estado en su pregunta. No debe omitir nada importante la próxima vez que haga una pregunta.
Michael Hampton
No omití nada. ¿Cómo debería saberlo de antemano? No habría tenido que preguntar si lo supiera. Pero lo que sea, lo resolví y eso es lo que importa.
rzmpl
3
Omitió cualquier parte de su configuración contenida listen 80 http2;que, según usted, era el problema. Eso hizo que fuera imposible que alguien más lo descubriera.
Michael Hampton
1
¡Me alegra que haya publicado esta pregunta y haya seguido su solución! Acabo de encontrar esto y no tenía idea de qué estaba causando la descarga de archivos aparentemente aleatoria. ¡La eliminación http2del único sitio que no es SSL en el servidor funcionó!
Graham Swan el
Busqué esto en todas partes, ¡gracias! Sería bueno que NGiNX lanzara una advertencia de configuración cuando esto se detecta.
Ascender el