О web-разработке
и даже немного больше...

Сжатие трафика посредством GZip.

GZip (GNU Zip) — утилита для сжатия и восстановления (декомпрессии) файлов. GZip имеет возможность работать с непрерывными потоками данных, упаковывая/распаковывая их «на лету». Тем самым позволяя работать с упакованными файлами так же легко, как и с распакованными (распаковывая их в памяти при чтении и упаковывая при записи). Многие UNIX-утилиты имеют встроенную поддержку этого механизма.
GZip так же активно применяется для сжатия Интернет-трафика, поддерживают его большинство современных браузеров.
В данном примере попробуем сконфигурировать сервер Apache, чтобы он автоматически архивировал страницы и передавал их в сжатом виде.

Конфигурация Apache 2.x

# выставляем заголовок Content-Encoding: gzip 
AddEncoding gzip .gz 

# с самого начала включаем gzip для текстовых файлов 
AddOutputFilterByType DEFLATE text/html 
AddOutputFilterByType DEFLATE text/xml 

# и для favicon.ico 
AddOutputFilterByType DEFLATE image/x-icon 

# также для CSS- и JavaScript-файлов 
AddOutputFilterByType DEFLATE text/css 
AddOutputFilterByType DEFLATE text/javascript 
AddOutputFilterByType DEFLATE application/x-javascript

# далее устанавливаем максимальную степень сжатия (9) 
# и максимальный размер окна (15). Если сервер не такой мощный, 
# то уровень сжатия можно выставить в 1, размер файлов при этом 
# увеличивается примерно на 20%. 
DeflateCompressionLevel 9 
DeflateWindowSize 15 

# отключаем сжатие для тех браузеров, у которых проблемы с 
# его распознаванием: 
BrowserMatch ^Mozilla/4 gzip-only-text/html 
BrowserMatch ^Mozilla/4\.0[678] no-gzip 
BrowserMatch Konqueror no-gzip 
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 

# указываем прокси-серверам передавать заголовок User-Agent для 
# корректного распознавания сжатия 
Header append Vary User-Agent 

# запрещаем кэширование на уровне прокси-сервера для всех файлов, 
# для которых у нас выставлено сжатие, 
<FilesMatch .*\.(css|js|php|phtml|shtml|html|xml)$> 
Header append Cache-Control: private 
</FilesMatch> 

# включаем кэширование для всех файлов сроком на 10 лет 
ExpiresActive On 
ExpiresDefault \"access plus 10 years\" 

# отключаем его для HTML-файлов <FilesMatch .*\.(shtml|html|phtml|php)$> 
ExpiresActive Off 
</FilesMatch>

Конфигурация файла .htaccess

<IfModule mod_gzip.c>
mod_gzip_on         Yes
mod_gzip_dechunk    Yes
mod_gzip_item_include file          \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler       ^cgi-script$
mod_gzip_item_include mime      ^text\.*
mod_gzip_item_include mime      ^application/x-javascript.*
mod_gzip_item_exclude mime      ^image\.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>

Опубликован: 21.01.2013 г.

См. также:

Преимущества и недостатки веб-серверов Nginx и Apache
Как включить сжатие GZip в Nginx?
Подробнее о логах в Apache
Ротация логов в Linux
Denwer в локальной сети
HTTP авторизация
Просмотр списка загруженных модулей Apache
httpd грузит процессор, что делать?

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Комментарии
  • Загрузка...
Друзья сайта