Configurarea mod_gzip - comprimarea traficului în apache, note de programator

Nu este ușor să încercați să păstrați frecvența de postări noi pe blogul cel puțin o dată pe săptămână. Pentru totdeauna tot felul de prostii în viața reală, ca o sesiune, strică toate planurile # 58;) Scrânge dinții, scriu un alt post, încercând să-l fac interesant și util cititorilor.







Doar în cazul în care, amintesc că mod_gzip este un modul pentru serverul web Apache, conceput pentru a comprima traficul. Funcționează foarte simplu - dacă modulul este instalat, iar browser-ul vizitatorului la cererea paginii spune că înțelege compresia lui gzip:

... atunci serverul web nu îl poate trimite pagina originală, dar versiunea gzip comprimată:

Tip de conținut: text / html; charset = utf-8
Content-Encoding: gzip

Configurarea mod_gzip - comprimarea traficului în apache, note de programator

De fapt, setările de rețea sunt destul de multe exemple de compresie de trafic folosind mod_gzip, dar am fugit în unele dificultăți în utilizarea sa, care ar dori să-i spun. Mai jos este folosit fișierul meu de configurare (mod_gzip.conf) pentru a comprima traficul web al acestui blog. Poate fi conectat la httpd.conf (sau oricare ar fi gazda dvs., virtual.conf.manual) utilizând directiva Include:

Descărcați versiunea curentă a fișierului mod_gzip.conf aici. Iată codul său:

În timp ce totul este simplu. Dacă modulul este instalat, porniți-l.

mod_gzip_can_negotiate Da
mod_gzip_static_suffix .gz
Adăugarea codului gzip .gz

Modul Opțiunea mod_gzip_can_negotiate spune că în cazul în care utilizatorul a solicitat un fișier, spune main.css, și în același director ca este main.css.gz (extensie set folosind mod_gzip_static_suffix), atunci ai nevoie pentru a da main.css.gz. Desigur, aceasta este numai dacă clientul acceptă compresia gzip. Astfel, putem precomprima toate fișierele care nu vor fi editate mai târziu, economisind astfel un timp mic CPU.

Dacă creați copiile comprimate ale fișierelor pentru opțiunile anterioare cu mâna, puteți pune Da aici, puteți descărca fișierele necesare (pentru ele va fi creată o copie comprimată pentru modul) și apoi puneți înapoi nr. Copiile comprimate sunt suprascrise de fiecare dată când se realizează un nou acces la fișiere, până la nr.







mod_gzip_temp_dir / tmp
mod_gzip_keep_workfiles Nu

Aici puteți schimba directorul pentru fișierele temporare și puteți specifica dacă doriți să le stocați. Acestea din urmă pot fi utile pentru depanare.

mod_gzip_minimum_file_size 500
mod_gzip_maximum_file_size 500000
mod_gzip_maximum_inmem_size 60000

Dimensiunea minimă / maximă a fișierului necesară comprimării și mărimea maximă a fișierului la care se va produce compresia în totalitate în memorie.

mod_gzip_min_http 1000
mod_gzip_handle_methods GET POST
mod_gzip_item_exclude reqheader "User-agent: Mozilla / 4.0 [678]"
mod_gzip_item_include handler ^ cgi-script $

Versiunea minimă a protocolului - HTTP / 1.0, comprima numai atunci când GET și POST cererile de a exclude clienții care spun că susțin gzip, deși, de fapt, nu este și pentru a permite comprimarea datelor emise de un CGI-script.

mod_gzip_item_include mime ^ text /.*
mod_gzip_item_include mime ^ application / x-httpd-php
mod_gzip_item_include mime ^ application / xml
mod_gzip_item_exclude mime ^ image /
mod_gzip_item_include fișierul \ .js $
mod_gzip_item_include fișierul .css $

Aici trebuie să acordați atenție câtorva puncte. În primul rând, browserul Netscape 4 nu se ocupă corect de fișierele css comprimate, iar acest lucru este rău. Din fericire, 99% dintre vizitatorii stau sub Firefox, Chrome, Opera sau IE, deci îngrijorătoare despre o singură curbă scrisă de browser-ul, care aproape nimeni nu-l folosește, nu vă faceți griji. În al doilea rând, în multe manuale se propune să se scrie în loc de linia 16:

mod_gzip_item_include mime ^ text / html $

Adică, odată cu dolarul la sfârșit, indicând (dacă ați uitat expresiile regulate) sfârșitul liniei. Deci, se pare că acest lucru nu merge întotdeauna, în funcție de toate aparențele, pe versiunea mod_gzip. Se pare că acest lucru se datorează faptului că serverul web trece valoarea de tipul Content în acest formular:

Tip de conținut: text / html; charset = utf-8

După cum puteți vedea, după text / html nu există sfârșit de linie deloc.

Permite mod_gzip să decodeze răspunsurile serverului cu

Dacă nu știți ce este, atunci credeți că într-adevăr ar trebui să fie în config. Todo: scrieți o descriere a protocolului HTTP și explicați ce este fragmentat.

LogFormat "% h% l% u% t"% V% r "% Out:% n =% n pct." common_with_mod_gzip_info2
CustomLog /full/path/to/logs/mod_gzip.log common_with_mod_gzip_info2

Formatul intrărilor în fișierul jurnal și calea către fișierul jurnal. Jurnalele ar trebui să fie activate doar pentru timpul de testare a mod_gzip, apoi vor pur și simplu în zadar ocupa spațiu pe disc. Iata cum arata intrarile in mod_gzip.log:

Prima linie spune că fișierul, selectați-dict.png a fost transmis în formă necomprimate, așa cum am spus, nu comprima imaginea (acestea sunt comprimate atât de rău, dacă nu este bmp). În al doilea - că atunci când cere un articol, Exemple interesante despre Perl au fost executate cu succes de deck și comprimarea codului html a fost deja efectuată cu 73%.

În general, opinia mea despre mod_gzip este următoarea - o poți folosi și ai nevoie de ea. În principal pentru că permite vizitatorilor (și motoarelor de căutare) să încarce paginile mai rapid și să salveze traficul. Cele mai multe gazde astăzi nu impun restricții privind volumul de trafic pentru site-urile dvs. și utilizarea procesorului nu sunt foarte preocupați (față de numărul de procese care rulează și volumul consumului de RAM), deoarece economiile din webmasterul joacă un rol secundar.

Îți place postul? Trimiteți-le altora:

(JS trebuie să fie activată)







Trimiteți-le prietenilor: