Nginx HTTP가 작동하지 않습니다-“다운로드”라는 파일을 다운로드합니다


11

https로 nginx 사이트를 방문하면 작동하지만 http를 사용하면 "다운로드"(확장자 없음), 57 바이트 파일을 다운로드하고 메모장 등으로 열면 횡설수설입니다.

내 호스트 설정은 다음과 같습니다.

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

}

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

이 구성은 정상입니다. nginx, 방화벽 구성 또는 기타를 복원했는지 확인하십시오
Alexey Ten

또한, 확인curl -v http://domain.com
알렉세이 텐

답장을 보내 주셔서 감사합니다. 나는 여러 번 다시 시작했다 (구성의 일부를 변경하려고 시도했지만 아무런 도움이되지 않았다). 내 방화벽도 괜찮다. curl로 확인할 때 이상한 응답을 얻습니다. ▒▒ 이것 만-https와 마찬가지로 소스 코드를 표시하지 않습니다.
rzmpl

phpfpm이 시작되어 실행 중이어야하며 소켓은 /run/php/php7.0-fpm.sock에 있어야합니다.
Farhan

그렇습니다. PHP 작동-PHP 문제라고 생각하지 않습니다. php인지 여부에 관계없이 HTTPS를 통한 모든 것이 작동합니다. 그러나 http : // 또는 도메인 (이 경우 https로 리디렉션해야 함)을 입력하면 "download"라는 57 바이트 작은 파일을 다운로드합니다. Nginx error.log도 아무것도 표시하지 않습니다.
rzmpl

답변:


12

문제의 원인을 알았습니다 listen 80 http2;.vhost 설정에서 사용 하고 있었는데 분명히 작동하지 않습니다 . 해당 줄에서 http2를 제거한 후 이제 정상적으로 다시 작동합니다!


이것이 당신의 질문에 있었다면 사람들이 쉽게 알아볼 수 있었을 것입니다. 다음에 질문 할 때 중요한 것을 생략해서는 안됩니다.
Michael Hampton

나는 아무것도 생략하지 않았다. 미리 어떻게 알 수 있었습니까? 내가 알고 있는지 물어볼 필요가 없었을 것입니다. 그러나 어쨌든 나는 그것을 정리했고 그것이 중요합니다.
rzmpl

3
listen 80 http2;문제가 있다고 말한 구성의 일부를 생략했습니다 . 다른 사람이 알아낼 수 없었습니다.
Michael Hampton

1
이 질문을 게시하고 솔루션을 따랐습니다. 방금이 문제가 발생하여 파일이 무작위로 보이는 원인을 알지 못했습니다. http2서버의 비 SSL 사이트에서 제거 했습니다!
그레이엄 스완

나는 이것을 위해 모든 곳을 보았다, 감사합니다! 이것이 감지되었을 때 NGiNX가 구성 경고를 발생시키는 것이 좋을 것입니다.
오름
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.