2016-01-15 2 views
0

В моей программе NGinx и PHP есть своеобразная проблема.NGINX и PHP Gzip сжатие не работает в браузере, но работает в cURL

Мой тест URL: http://104.194.26.13:2002/a.php

Я использую PHP с Nginx (FCGI). Для сжатия данных я использую:

<?php 

ob_start('ob_gzhandler'); 

phpinfo(); 

?> 

При доступе через браузер показывает:

Vary: Accept-Encoding 

Но нет Content-Encoding и размер загруженных данных, показанных в Firebug является то, что из несжатые данные.

При доступе из CLI с помощью завиток:

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

Есть некоторые gbiresh символов предполагающие это было закодировать. Если вы сохраните вывод с помощью указанной команды, размер будет равен 17,5 КБ вместо 75 КБ при доступе через браузер.

Вот полные заголовки, полученные от моего файла 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 

Что может быть, возможно, не так?

+0

почему вы обработки сжатия на 'php' стороне и не в конфиге 'nginx'? –

+0

Для моего приложения я не могу использовать gzip на уровне nginx. – user1066991

ответ

0

Какой браузер вы используете, потому что Chrome 47.0.2526.106 m показывает это:

request

Теперь, как указано в комментариях, почему бы не попробовать и сжать его непосредственно от Nginx? Используя сжатие GZIP в Nginx конфигурации:

# 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 
+0

Я использую Firefox 43.0.4 с Firebug. На данный момент я не могу использовать nginx gzip для своего приложения. Странно даже в моем хроме, что он не показывает ваш результат: «Соединение: keep-alive Content-Length: 75821 Content-Type: text/html Дата: Пт, 15 Янв 2016 06:31:44 GMT Сервер: nginx Vary: Accept-Encoding X-Powered-By: PHP/5.5.27' – user1066991

+0

Также утилита по адресу: http://www.giftofspeed.com/gzip-test/ подтверждает, что она не работает. – user1066991

+0

Хм, это странно, я получаю точные результаты Firefox '41.0.1', ps, у вас есть расширение' zlib'? Как требует 'ob_gzhandler'. – Darren

Смежные вопросы