当前位置:  开发笔记 > 编程语言 > 正文

nginx正在提供下载而不是php页面

如何解决《nginx正在提供下载而不是php页面》经验,为你挑选了1个好方法。

我今天将nginx从1.8.0升级到1.9.7并且不得不改变几行以使网站再次运行.现在它适用于ssl(443)但不适用于http(80).我不得不将fastcgi_params更改为fastcgi.conf.

当我通过cloudflare尝试网站时,它表示与我的服务器没有任何关联.直接连接我得到一个下载的文件.看起来像是一个未在浏览器中解压缩的压缩文件.这是标题.

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Cookie:{hidden}
Host:{Hidden}
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36

浏览器或服务器上没有错误.检查nginx和php-fpm日志.

还有什么我可以尝试的吗?

附加信息:我使用easyengine为此服务器供电,但我使用的是nginx主线分支.

更新:清除nginx并重新安装后,我现在可以访问其标准http(80)端口上的所有站点.我所拥有的一个ssl站点无法通过其https(443)连接访问.当我这样做时,下载php索引文件.所有其他页面都通过SSL工作,而不是索引页面.它是一个带有漂亮网址的wordpress网站.所有页面实际上都是index.php文件.但这只发生在主页上.80和443 ssl的listen指令位于同一虚拟主机部分.



1> JpaytonWPD..:

该问题与HTTP2模式有关.从listen行中删除http2可以解决问题.

server {
listen 80 http2;
listen 443 ssl http2;

改成:

server {
listen 80;
listen 443 ssl http2;

HTTP2通常仅适用于ssl.在非ssl listen上启用它会导致错误.一切正常,并且与ssl上的http2非常相似.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有