Apache, LiteSpeed

На общем хостинге и на серверах с Apache или LiteSpeed сжатие включается путём добавления в файл .htaccess такого кода:

<IfModule mod_deflate.c>
    <filesMatch "\.(js|css|html|txt|xml)$">
        SetOutputFilter DEFLATE
    </filesMatch>
</IfModule>

Сжатие страниц в связке Nginx+Apache

Если у Вас на VPS или выделенном сервере работает связка Nginx+Apache, то таким образом улучшается отдача статического контента и ускоряется загрузка сайта. Но у этого способа есть и побочные эффекты. Чтоб включить сжатие на поддерживающих эту технологию браузерах, достаточно создать пустой файл .htdeflate в папке public_html.

Для поддержания работы такого метода необходимо добавить следующие строки в файл виртуального хоста:

set $root /home/USERNAME/www;
set $deflate "${root}/.htdeflate";

location ~* ^.+\.(css|js)$ {
    root $root;
    if ( -f $deflate ) {
        gzip on;
    }
    gzip_disable msie6;
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 9;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
}

Как проверить

Вывод команды:

curl -I -H 'Accept-Encoding: gzip,deflate' http://ВАШДОМЕН/

Должен содержать строку: Content-Encoding: gzip. Например:

HTTP/1.1 301 Moved Permanently 
Date: Tue, 07 Apr 2015 07:59:57 GMT 
Server: Apache/2.2.15 (CentOS) 
Location: http://ВАШДОМЕН/hosting/ 
Vary: Accept-Encoding 
Content-Encoding: gzip 
Content-Length: 20 
Connection: close 
Content-Type: text/html; charset=iso-8859-1

А также команда ниже должна отдавать содержимое страницы без ошибок

curl -H 'Accept-Encoding: gzip,deflate' http://ВАШДОМЕН/ | gunzip

Добавить комментарий