Nginx HTTP çalışmıyor - “indir” adlı bir dosyayı indirir


12

https ile nginx sitemi ziyaret edersem, ancak http ile "download" (uzantı yok), 57 bayt ve açılış not defteri vb. ile bir dosya indiriyor sadece anlamsız şeyler gösteriyor.

İşte benim vhost config:

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;
    }

}

kıvrılma 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 
▒▒

Bu yapılandırma tamam. Nginx'i, yapılandırılmış güvenlik duvarını veya başka bir şeyi yeniden yazıp yazmadığınızı kontrol edin
Alexey On

Ayrıca, kontrol edincurl -v http://domain.com
Alexey On

Cevabınız için teşekkürler. Birkaç kez yeniden başlattım (yapılandırmaların parçalarını değiştirmeyi denedim, ancak hiçbir şey yardımcı olmadı), güvenlik duvarım da tamam. Kıvrılma ile kontrol ederken garip bir yanıt alıyorum: ▒▒ sadece bu - kaynak kodunu https ile olduğu gibi göstermiyor.
rzmpl

phpfpm çalışır durumda olmalı ve /run/php/php7.0-fpm.sock içinde soket bulunmalıdır.
Farhan

Öyle. PHP çalışıyor - Bir PHP sorunu olduğunu sanmıyorum. Php olsun ya da olmasın HTTPS üzerinden her şey çalışır. Ancak http: // veya yalnızca etki alanını yazarsam (bu durumda https'ye yönlendirmesi gerekir), yalnızca "download" adlı 57 baytlık küçük bir dosya indirir - Nginx error.log da hiçbir şey göstermez.
rzmpl

Yanıtlar:


13

Soruna neyin sebep olduğunu öğrendim: listen 80 http2;Görünüşe göre çalışmıyor olan hayalet yapılandırmamda kullanıyordum . Bahsedilen satırdan http2'yi kaldırdıktan sonra tekrar normal çalışıyor!


Sorunuzda olsaydı, insanların fark etmesi kolay olurdu. Bir daha soru sorduğunuzda önemli bir şeyi atlamamalısınız.
Michael Hampton

Hiçbir şey atlamadım. Önceden nasıl bilebilirdim? Biliyor muyum diye sormaya gerek kalmazdı. Ama her neyse, ben hallettim ve önemli olan bu.
rzmpl

3
Sorununuz listen 80 http2;olduğunu söylediğiniz, yapılandırmanızın içerdiği herhangi bir bölümü atladınız . Bu, bunu başkalarının anlaması imkansız hale getirdi.
Michael Hampton

1
Bu soruyu yayınladığınız ve çözümünüzle takip ettiğiniz için çok mutluyum! Ben sadece bu karşılaştı ve görünüşte rastgele dosya indirme neden neydi hiçbir fikrim yoktu. http2Sunucuda SSL olmayan bir siteden kaldırma çalıştı!
Graham Swan

Bunun için her yere baktım, teşekkürler! Bu tespit edildiğinde NGiNX bir yapılandırma uyarısı atarsa ​​iyi olur.
aecend
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.