Apache 2.4.37 mod_deflate не работы

Я установил Apache 2.4.37 через ppa:ondrej/apache2 и не может сделать mod_deflate (gzip сжатие) работы. Я использую сервер Ubuntu 18.04.

mod_deflate включен в Apache:

sudo apachectl -t -D DUMP_MODULES | grep deflate
deflate_module (shared)

Я поместил код в .htaccess:

AddOutputFilterByType DEFLATE text/css
RewriteEngine on
RewriteBase /
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,QSA,NE]

.htaccess включен конфигурацией Apache (и работы перенаправления).

Когда я пробую: curl -I -H 'Accept-Encoding: gzip,deflate' http://myserver/pokus.css

возвращается:

HTTP/1.1 302 Found
Date: Thu, 24 Jan 2019 12:20:00 GMT
Server: Apache/2.4.37 (Ubuntu)
Location: https://myserver/pokus.css
Content-Type: text/html; charset=iso-8859-1

Таким образом, файл возвращается несжатый.

Я также пытался добавить, выкачивают команду непосредственно в VirtualHost, но без успеха.

Никакое сообщение об ошибке в /var/log/apache2/error.log. Apache перезапущен также без ошибок.

Какая-либо идея?

1
задан 24 January 2019 в 23:01

2 ответа

Веб-сервер отправляет тип пантомимы text/html, в то время как Вы фильтруете типом пантомимы text/css.

Это, очевидно, не работает. Любой фильтр text/html (который будет включать весь HTML), обновите тип пантомимы для CSS или использование AddOutputFilter для расширения файла CSS:

AddOutputFilter css
1
ответ дан 7 December 2019 в 15:08

Я думаю ответ Content-Type: text/html; ненужный неутешительный Вы. Но сначала, давайте проверим конфигурацию.

  1. mod_deflate зависит от mod_filter таким образом, стенд должен быть включен, и сервер должен быть перезапущен затем.

  2. В файле /etc/apache2/mods-enabled/deflate.conf Вы видите, когда указанные выше требования удовлетворены, mod_deflate включен с некоторыми основными настройками, таким образом, мы не должны делать ничего больше для выполнения теста.

На самом деле Вы ищете ответ, который содержит некоторых как следовать строки:

Vary: Accept-Encoding
Content-Encoding: gzip
Content-Type: text/css

Проблема состоит в том, когда существует заголовок ответа с перенаправлением HTTP 301/HTTP 302 (поскольку это находится в Вашем случае), полученная информация не полна. Так попытайтесь curl URL, который возвратит заголовок с HTTP 200, или примените другой метод, чтобы сделать тест.


Давайте примем на стороне сервера, у нас есть следующее 24K большой файл:

$ ls -l /var/www/html/test.css 
-rw-r--r-- 1 root root 24K Jan 24 22:10 /var/www/html/test.css

На стороне клиента мы можем использовать wget следующим образом, чтобы протестировать, работает ли gzip сжатие:

wget --header="Accept-Encoding: gzip" http://example.com/test.css

Если все пошло прекрасное загруженный файл test.css должен быть о 3K большой:

$ wget --header="Accept-Encoding: gzip" gzip" http://example.com/test.css
...
HTTP request sent, awaiting response... 200 OK
Length: 3045 (3.0K) [text/css]
Saving to: ‘test.css’

test.css   100%[===============================>]   2.97K  --.-KB/s    in 0s

Можно проверить содержание загруженный файл, это должна быть другая, сжатая версия исходного файла.


Ссылки:

0
ответ дан 7 December 2019 в 15:08

Другие вопросы по тегам:

Похожие вопросы: