Модуль компрессии не сжимает css и js, т.к. обычно php не обрабатывает эти типы файлов. Обычно это делают с помощью настройки Apache или nginx. При двухуровневой архитектуре с nginx рекомендуется настраивать сжатие именно на нем.
В настройках ядра опция "Создавать сжатую копию объединенных CSS и JS файлов" означает, что объединенные файлы создаются в том числе в сжатом виде. Nginx с включенным модулем http://nginx.org/ru/docs/http/ngx_http_gzip_static_module.html просто отдает сжатую копию, не сжимая на лету.
то есть вероятно что на других сайтах у ngix включен этот модуль. а на конкретном сайте нет.? меня просто удивляет факт что настроек для сжатия в htaccess не выставлено и по идее ругаться то оптимизаторы должны на все сайты...а ругается только на конкретный, а на остальных как будто все в порядке с этим
Скорее всего у вас на одном из nginx не включено сжатие контента либо не корректно настроено. Модуль ngx_http_gzip_static_module не обязателен для сжатия css, js. Он лишь позволяет в определенных условиях оптимизировать этот процесс.
nginx в bitrix env по умолчанию собран с ngx_http_gzip_static_module и сжатие в /etc/bitrix/nginx/nginx.conf включено (gzip on)
Протестировать можно так: curl -H "Accept-Encoding: gzip" -Ip http://<domain>
Получаем в ответку заголовок "Content-Encoding: gzip" если сжатие включено и без него, если выключено.
Это прекрасно. Т.е. как я понимаю (могу ошибаться) если клиент (браузер, curl и т.д.) поддерживает gunzip, то он запрашивает страницу с соответствующим заголовком и получает её зазипованной - всё работает из коробки, настройки не требует. text/html даже прописывать не надо, он включён модулем всегда, а если всё-таки этот MIME-тип прописать nginx будет ругаться в логах "MIME type "text/html" in /etc/nginx/nginx.conf:67" и это наверное правильно...
Поелику вопрос: как заставить браузер всегда запрашивать с gzip? Curl ведь вот не заставить без опции..
Друзья,привет!Есть вопрос по теме.Существует сайт на битриксе, google insights срочно советует включить компрессию всех вещей,однако как через nginx так и черех .htaccess сжатие стоит (проверял конфиг nginx и вписывал deflate в htaccess).Также в самой панели включена оптимизация js и css. gidnetwork.com/tools/gzip-test.php говорит,что сжатие отсутствует, pr-cy.ru тоже согласно с этим,однако whatsmyip.org/http-compression-test говорит обратное. Так то всё везде прописано,могу скинуть файлы что да как,но сжатия не даёт,сталкивался кто с этим? Скрины прилагаю,надеюсь,поможет кто))
Потоковое сжатие трафика вы можете увидеть в отладчике(f12), в http ответе заголовок "Content-Encoding gzip" и сравнивая колонки "Size" и "Transferred"
В вашем случае размер html страницы 72.17 KB а передано 16.52 KB
Обратитие внимание, что http://smolmotor.ru/ и https://smolmotor.ru/ разные сайты и сканеры могут по разному реагировать на переадресацию. Собственно на скрине отчет по анализу http ответа с переадресаций, сканер просто не пошел на новую ссылку. 184 байта это ж явно не html страница
Спасибо большое,увидел,что сжатие стоит.По крайней мере,сервисы в этом уверены)) Тогда другой вопрос,на сайте стоит модуль добавления объявлений,продажа машин и прочее.Картинки добавляются неоптимизированные,понятное дело,и я надеялся на автоматизацию этого процесса битриксом.Пока надеялся - начал сжимать вручную,заменяя на FTP файлы соптимизированные google insights. Но потом снова кто-то что-то залил,и показатель оптимизации Medium (63/100) свалился в Low (25/100),и появилось снова тонна неоптимизированных изображений. Есть какое-то решение компрессии всех этих вещей на битрикс (не прибегая к модулям,которые можно установить при оплаченной лицензии))?
Во первых файлы инфоблоков нельзя трогать напрямую. Хотя теоритически критических ошибок не должно быть, если только пережимать картинки. Просто в базе храниться параметры картинки и размеры файла, и код работающий с файлами может не перепроверять фактические параметры, но скорее всего не сдохнет. Разве что вы серьезную подмену делаете типа замены png на jpeg.
Уменьшение картинки можно делать при заливке и в шаблоне где эти картинки выводяться. Я как правило не уменьшаю при заливке, а просто делаю лимиты, что бы совсем дикие фотки не лили. А в шаблоне делаю уменьшение по ситуации. Таким образом в одном месте можно поменять параметры выводимой графики и включить/выключить наложение водянки, не трогая залитые файлы. Но это именно уменьшение, а не оптимизация. Битрикс использует GD библиотеку, сомневаюсь, что из нее можно что-то получше вытянуть. Разве что снизить качество jpeg, но там реально треш выходит по качеству.
Типовых решений пока нету, но тема важная, гараздо важней композита, на мое усмотрение. Я пока решил через image lazy loading.
Если вам нужно конкретно уменьшить размер изображения, то сам Google Insight советовал раньше JpegOptim для jpg файлов и PngOptim для PNG соответственно. Я на сервер поставил JpegOptim (ограничил добавление фото только jpg файлами), вывод изображения в html сделал через CFile::ResizeImageGet(), где изображение ресайзится до нужных размеров, без каких либо изменений качества (с ними у битрикса ужасно, имхо) и создал вот такое событие:
Весь дальнейший кеш проходил через эту функцию, отлично уменьшался, гугл стал доволен, аки слон. + сохраняются исходники фотографий, если такие необходимы.
Леонид,а можете дать подробную инструкцию по установке JpegOptim и PngOptim,что-то не получается у меня ни через внутреннюю PHP консоль битрикса,ни через patty,а по сути это сейчас самая главная проблема - изображения. Буду очень признателен!