Настройка на софтуерна-компресията и кеширането в apache2
Малко теория
Кеширане. Основният принцип е, че заглавията на споделяне, сървърът ви насочва клиента (браузър), че определено съдържание може да се кешира за дълго време - една седмица, месец, година. След това, в бъдещите искания на това съдържание, браузърът ще изтегли данните от кеша. Лафайет може да свърши, когато:
- време Cache живот е изтекъл;
- Потребителят ръчно изчистване на кеш паметта - Ctrl + F5,
- Приключила пространство на разположение за кеша и кеширани данни е била заменена от нова;
- Данните са актуализирани на сървъра страна;
Използването на кеширане да намалите натоварването на сървърите и спасяване на трафика на клиентите и време. Въпреки това, ние трябва да разберем, че кеша на майка сърфист може да бъде изцяло заменен на дневна база, а дори и по-често - всичко зависи от броя на посетените сайтове и количеството на пари в наличност в рамките на квотата.
Компресия. Полезна парче, което позволява да компресирате (чрез софтуерна) данни на сървъра и декомпресира след получаване на клиента (браузър). Клиентът трябва да може да се декомпресира компресираната информация, това, което той каза на Accept-Encoding хедър. например:
Отново се запишете на трафик и по този начин се намалява времето за изчакване. Но, в същото време, малко повече товари процесора декомпресиране на данните.
Необходими модули Apache2
За да се даде възможност за кеширане, ние се нуждаем mod_deflate модул. за кеширане - mod_headers или mod_expires. Mod_headers са удобни също да премахнете заглавието на ETag. го веднъж и не може да има проблеми с кеширане чрез mod_header когато компресията е активирана. За да активирате следва:
За да забраните използването на модули a2dismod отбора:
Окончателно .htaccess
Веднага давам пример .htaccess файл, който е конфигуриран кеширане и компресия. Файлът трябва да съдържа кратки бележки, и по-долу анализира всички директиви и разпоредби, по-подробно.
забележка
FilesMatch и файлове
шаблона се сравнява само с името на файла, така че не можете да посочите пътя на файла в тези директиви.
За да се уточни обхватът на кеш паметта, използвайте следните правила:
софтуерна компресия
Apache2 вече поддържа mod_gzip модул. Сега основният модул е mod_deflate. който включва по-рано. За да се уверите, че компресия работи - Уверете се, че отговорите не съдържат глава Content-Encoding:
Компресия може да бъде конфигуриран да определени файлове на MIME типове, той е отговорен за това правило AddOutputFilterByType.
Модул спадат, когато сгъстен да премахнете глава съдържание дължина. защото дължината на компресиран отговор не е известна към момента на прехвърляне на заглавия. Въпреки това, по време на премахването на заглавната част на ETag отговор - ситуацията се нормализира. Защо?
забележка
кеширане
За кеширане активирахме модули mod_headers и mod_expires. Тези модули позволяват да зададете заглавията в отговор на сървъра и подкрепа на схемата браузър кеширане.
Аз не забелязах ясно за мен, когато mod_deflate на поведение и да конфигурирате кеширане чрез mod_headers. Изчезна Content-Length горен и кеширане спря да работи. Разтворът е намерено - Изтриване заглавието от отговора:
В случай на mod_expires компресия и кеширане да работи правилно дори и с изключен модул mod_headers. Постигнете целта си, ако знаете защо има толкова.
Малко с един поглед
Анализирайте печалба от GZIP -contractions например JQuery-2.0.3.js библиотека. Всъщност, файла (не minifitsirovanny) тежи 236,5KB. mod_deflate го компресира до 70 KB - не е нещо лошо. Следващата заявка, ако е разрешена за кеширане, дори и тези 70 KB, няма да бъдат изтеглени по мрежа - браузър JQuery ще получи от кеша.
Проверете как сбирка minifitsirovannye CSS / JS файлове за пример източник Twitter Bootstrap 3. Имаме bootstrap.min.css 2 файл (100,5 KB) и bootstrap.min.js (27,1 KB) С тегло 127,6 KB. Когато компресията получаваме и 16,5 KB 7,1 КБ, съответно, в общо 23,6 KB.
И в двата случая, спестяване на около 70% от трафика!
# Apache2, # .htaccess, #cache, #gzip, # оптимизация