Nginx HTTP काम नहीं कर रहा है - "डाउनलोड" नामक एक फ़ाइल डाउनलोड करता है


11

अगर मैं अपनी नैगनेक्स साइट पर जाकर https के साथ काम कर रहा हूं, लेकिन http के साथ यह "डाउनलोड" (कोई भी एक्सटेंशन नहीं है) नामक एक फाइल डाउनलोड कर रहा है, 57 बाइट्स और इसे नोटपैड आदि के साथ खोलना सिर्फ गिबरिश सामान दिखाता है।

यहाँ मेरा 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;
    }

}

कर्ल-वी:

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 
▒▒

यह विन्यास ठीक है। जांचें कि क्या आपने नगनेक्स को पुनर्स्थापित किया है, फ़ायरवॉल को कॉन्फ़िगर किया है, या कुछ और
एलेक्सी टेन

इसके अलावा, साथ में देखेंcurl -v http://domain.com
एलेक्सी टेन

आप उत्तर के लिए धन्यवाद। मैंने कई बार पुनरारंभ किया (मैंने कॉन्फ़िगर के कुछ हिस्सों को बदलने की कोशिश की, लेकिन कुछ भी मदद नहीं की), मेरा फ़ायरवॉल भी ठीक है। कर्ल के साथ जांच करते समय मुझे एक अजीब प्रतिक्रिया मिलती है: - बस यह - स्रोत कोड नहीं दिखाता है जैसे कि यह https के साथ करता है।
rzmpl

phpfpm होना चाहिए और चल रहा है और सॉकेट /run/php/php7.0-fpm.sock में मौजूद होना चाहिए।
फरहान

ऐसा होता है। PHP काम करता है - मुझे नहीं लगता कि यह एक PHP मुद्दा है। HTTPS पर सब कुछ काम करता है, भले ही यह php हो या न हो। लेकिन अगर मैं http: // या केवल डोमेन (जिस स्थिति में इसे https पर पुनर्निर्देशित करना चाहिए) टाइप करता हूं, तो यह "डाउनलोड" नामक 57 बाइट वाली छोटी फ़ाइल डाउनलोड करता है - Nginx error.log कुछ भी नहीं दिखाता है।
rzmpl

जवाबों:


12

मुझे पता चला कि समस्या का कारण क्या है: मैं listen 80 http2;अपने vhost config में उपयोग कर रहा था जो कि स्पष्ट रूप से काम नहीं करता है । मैं http2 को उक्त लाइन से हटाने के बाद अब सामान्य रूप से फिर से काम कर रहा हूँ!


यह लोगों के लिए हाजिर करना आसान होता, अगर यह आपके सवाल में होता। अगली बार जब आप कोई प्रश्न पूछें तो आपको किसी भी महत्वपूर्ण चीज को छोड़ना नहीं चाहिए।
माइकल हैम्पटन

मैंने कुछ भी नहीं छोड़ा। मुझे इसे पहले से कैसे पता होना चाहिए? अगर मुझे पता होता तो पूछने की जरूरत नहीं होती। लेकिन जो भी हो, मैंने इसे सुलझा लिया और यही मायने रखता है।
rzmpl 22

3
आपने अपने कॉन्फ़िगरेशन के जो भी हिस्से को समाहित listen 80 http2;किया है, आप कहते हैं कि समस्या थी। इससे किसी और के लिए यह पता लगाना असंभव हो गया।
माइकल हैम्पटन

1
तो खुशी है कि आप इस प्रश्न को पोस्ट किया और अपने समाधान के साथ! मुझे बस इसका सामना करना पड़ा और मुझे पता नहीं था कि प्रतीत होने वाली यादृच्छिक फ़ाइल डाउनलोड का कारण क्या था। http2सर्वर पर एक गैर-एसएसएल साइट से हटाना काम किया!
ग्राहम स्वान

मैंने इसके लिए हर जगह देखा, धन्यवाद! यह अच्छा होगा अगर एनजीआईएनएक्स यह पता चलने पर एक कॉन्फ़िगर चेतावनी फेंक देगा।
किस्सा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.