Nginx HTTP不起作用-下载名为“下载”的文件


11

如果我使用https访问nginx网站,则可以正常使用,但是使用http,则下载名为“ download”(无任何扩展名)的文件(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;
    }

}

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

这个配置没问题。检查您是否重述了nginx,配置的防火墙或其他内容
Alexey

此外,检查用curl -v http://domain.com
阿列克谢十大

感谢您的回复。我重启了几次(尝试更改部分配置,但无济于事),我的防火墙也还可以。当检查curl时,我得到一个奇怪的响应:▒▒就这样-没有像https那样显示源代码。
rzmpl

phpfpm应该已经启动并且正在运行,并且套接字应该存在于/run/php/php7.0-fpm.sock中。
Farhan

是的 PHP有效-我认为这不是PHP问题。通过HTTPS进行的所有操作均有效,无论是否为php。但是,如果我输入http://或仅输入域(在这种情况下,它应重定向到https),它只会下载一个称为“下载”的57字节的小文件-Nginx error.log也不显示任何内容。
rzmpl

Answers:


12

我发现了导致问题的原因:我listen 80 http2;在vhost配置中使用了它,显然不起作用。从上述行中删除http2之后,它现在又可以正常工作了!


如果您有疑问,这将很容易让人发现。下次问一个问题时,您不应忽略任何重要的内容。
迈克尔·汉普顿

我什么都没省略。我应该如何事先知道呢?不需要问我是否知道。但是,无论如何,我都进行了整理,这才是重要的。
rzmpl

3
您省略了配置中包含listen 80 http2;问题的任何部分。这使得其他任何人都无法弄清楚。
迈克尔·汉普顿

1
很高兴您发布了这个问题,并提出了解决方案!我只是遇到了这一点,不知道是什么原因导致了看似随机的文件下载。http2从服务器上的一个非SSL站点中删除是可行的!
格雷厄姆·斯旺

我到处都在寻找,谢谢!如果检测到NGiNX会发出配置警告,那将是很好的。
登场
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.