NGINX和PHP Gzip压缩在浏览器中不起作用,但在cURL中工作

时间:2016-01-15 05:59:25

标签: php nginx compression gzip

我的NGinx和PHP安装程序中发生了一个特殊的问题。

我的测试网址:http://104.194.26.13:2002/a.php

我正在使用PHP与NGinx(FCGI)。压缩我正在使用的数据:

<?php

ob_start('ob_gzhandler');

phpinfo();

?>

通过浏览器访问时显示:

Vary: Accept-Encoding

但是没有内容编码,Firebug中显示的下载数据的大小是非压缩数据的大小。

使用curl从CLI访问时:

curl -H "Accept-Encoding: gzip" "http://104.194.26.13:2002/a.php"

有一些gbiresh字符暗示它确实编码。如果使用上述命令保存输出,则通过浏览器访问时,大小为17.5 KB而不是75 KB。

以下是从我的a.php文件收到的完整标题:

Connection: keep-alive
Content-Length: 75550
Content-Type: text/html
Date: Fri, 15 Jan 2016 05:37:43 GMT
Server: nginx
Vary: Accept-Encoding
X-Powered-By: PHP/5.5.27

可能出现什么问题?

1 个答案:

答案 0 :(得分:0)

您使用的是哪种浏览器,因为Chrome 47.0.2526.106 m显示了这一点:

request

现在,正如评论中所述,为什么不尝试直接从Nginx压缩它?通过在nginx配置中利用gzip压缩:

# enable gzip compression
gzip on;
gzip_min_length  1100;
gzip_buffers  4 32k;
gzip_types    text/plain application/x-javascript text/xml text/css;
gzip_vary on;
# end gzip configuration

Source

以下是我的请求标题:

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
Host:104.194.26.13:2002
Referer:http://stackoverflow.com/questions/34805168/nginx-and-php-gzip-compression-not-working-in-browser-but-works-in-curl/34805312?noredirect=1
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36