Setarea gzip-compresie și în cache apache2

Un pic de teorie

Caching. Principiul de bază este că antetele de partajare, serverul spune clientul (browser) pe care un anumit conținut poate fi salvată în memoria cache pentru o lungă perioadă de timp - o săptămână, o lună, an. După aceea, în cererile viitoare ale acestui conținut, browser-ul va extrage datele din cache. Lafayette ar putea încheia atunci când:

  1. durata de viață Cache a expirat;
  2. Utilizatorul șterge manual memoria cache - Ctrl + F5,
  3. spațiu Încheiat disponibil pentru memoria cache și datele din memoria cache a fost suprascris de către unul nou;
  4. Datele au fost actualizate pe partea de server;

Utilizarea cache vă reduce încărcarea serverului și de a salva traficul de client și de timp. Cu toate acestea, trebuie să înțelegem că cache-ul surfer mama poate fi complet rescrise pe o bază de zi cu zi, și chiar mai des - totul depinde de numărul de site-uri vizitate și suma de bani disponibile în cadrul contingentului.

Compresie. piesă utilă care permite să comprimați (prin gzip), datele de pe server și decomprima după ce a primit pe client (browser). Clientul trebuie să fie capabil de a decomprima datele comprimate, ceea ce a spus pe antet Accept-Encoding. de exemplu:

Din nou, am salva pe lățime de bandă și, astfel, reduce timpul de așteptare. Dar, în același timp, un pic mai multe sarcini CPU decomprimarea datelor.

Module necesare Apache2

Pentru a activa cache, avem nevoie de modulul mod_deflate. pentru caching - mod_headers sau mod_expires. Mod_headers veni, de asemenea, la îndemână pentru a elimina antetul ETag. o dată și pot fi probleme cu punerea în cache prin mod_header atunci când compresia este activată. Pentru a activa următoarele:

Pentru a dezactiva utilizarea modulelor echipei a2dismod:

.htaccess finală

da imediat un fișier .htaccess exemplu care este configurat cache și compresie. Fișierul va conține note scurte, și mai jos analizează toate directivele și normele mai detaliat.

remarcă

FilesMatch și fișiere

șablonul este comparat doar cu numele de fișier, astfel încât să nu se poate specifica o cale de fișier în aceste directive.

Pentru a specifica domeniul de aplicare al cache, utilizați următoarele reguli:

gzip-compresie

Apache2 mai acceptă modul mod_gzip. Acum, modulul de bază este mod_deflate. pe care am inclus mai devreme. Pentru a verifica dacă compresie funcționează - Asigurați-vă că răspunsul conține un antet Content-Encoding:

Compresie poate fi configurat pentru anumite fișiere de tipurile MIME, este responsabil pentru această regulă AddOutputFilterByType.

Modulul dezumfle atunci când comprimat poate elimina antetul Content-Length. deoarece lungimea unui răspuns comprimat nu este cunoscută în momentul transferului titlurilor. Cu toate acestea, după îndepărtarea antetul răspunsului ETag - situația este normalizat. De ce?

remarcă

cache

Pentru punerea în cache am activat module mod_headers și mod_expires. Aceste module vă permit să setați antetele în răspunsul server și schema de sprijin browser-ul cache.

Nu a observat clar pentru mine atunci când mod_deflate comportamentul și configurați cache-ul prin mod_headers. Dispărută Content-Length și caching încetat să funcționeze. A fost găsită soluția - Șterge titlul de răspuns:

În cazul de compresie mod_expires și cache pentru a funcționa corect chiar și cu oprite mod_headers module. Vă atinge scopul, dacă știți de ce există atât.

Un pic pe scurt

Analizeaza profit din -contractions gzip pentru biblioteca exemplu jQuery-2.0.3.js. De fapt, fișierul (nu minifitsirovanny) cantareste 236,5KB. mod_deflate comprimă la 70 KB - nu este un lucru rău. Următoarea cerere, în cazul în care cache activată, chiar și aceste 70 KB nu vor fi descărcate printr-o rețea - browser-ul jQuery ar obține din cache.

Verificați modul în care fișierele CSS / JS minifitsirovannye Huddle la sursă exemplu Twitter Bootstrap 3. Avem bootstrap.min.css 2 fișier (100,5 KB) și bootstrap.min.js (27,1 KB) cântărire 127,6 KB. Când compresia vom obține și KB 16.5 KB 7,1a, respectiv, în total, 23,6 KB.

În ambele cazuri, economisind aproximativ 70% din traficul!

# Apache2, # .htaccess, #cache, #gzip, # optimizare