Cum se configurează http

Cum se configurează http

Din ce în ce mai multe companii încep să utilizeze HTTP / 2 pentru a îmbunătăți performanța site-urilor lor. Configurarea HTTP / 2 este destul de simplă, dar dacă infrastructura dvs. are Varnish. pentru că Lacul 4. * nu acceptă SSL, atunci va trebui să găsim o modalitate de a face ca toate componentele necesare să funcționeze între ele.







După cum știți, Web-ul continuă să meargă înainte și în final avem o nouă versiune a protocolului HTTP. Principalele sale avantaje sunt:

- fluxuri și multiplexare (fluxuri și multiplexări): o conexiune HTTP / 2 poate conține multe fluxuri deschise competitive. Multiplicarea cererilor se realizează datorită disponibilității fiecărei solicitări / răspunsuri HTTP asociate cu aceasta, a propriului thread. Fluxurile nu depind una de cealaltă, astfel încât așteptarea unui răspuns nu afectează funcționarea altor fire.

- Comprimarea antetului HTTP. în HTTP / 1.1, antetele nu se micșorează și consumă în mod inutil lățimea de bandă, crescând de asemenea timpul de transmisie prin rețea. În HTTP / 2, a fost introdus un nou mecanism de compresie - HPACK. Elimină anteturile redundante și, de asemenea, reduce vulnerabilitatea la atacurile cunoscute.

- trimiterea în avans a datelor de la server (serverul împinge): HTTP / 2 permite serverului să trimită prematur clientului răspunsurile asociate cu cererile sale anterioare.

Multe browsere moderne acceptă deja HTTP / 2. astfel încât, cu câțiva pași simpli veți obține rezultatele dorite în ele.

De asemenea, puteți afla mai multe despre inovații, făcând trimitere la specificațiile oficiale:

De ce am nevoie de HTTP / 2?

Explicațiile de mai sus sunt bune, dar unii oameni le place să vadă sau să simtă rezultatul înainte de a începe să facă ceva. Cel mai bun demo pe care l-am găsit și care este capabil să-i motiveze pe alții a fost creat de Akamai. În demo, ele compară încărcarea a două imagini identice, formate din mai multe segmente mici, prin HTTP / 1.1 și HTTP / 2. Dacă browserul dvs. acceptă HTTP / 2, atunci vă recomand să mergeți și să vedeți demo-ul HTTP / 2. În plus, browserele necesită SSL pentru HTTP / 2, iar acest lucru va face site-ul mai sigur.

Schema clasică cu vopsea

De obicei, Varnish este pus între clienți și un server web. Schema este următoarea:

Cum se configurează http






Aici avem un client care solicită o pagină. Cererea lui merge la Varnish, care ascultă portul 80. Apoi, Varnish verifică dacă are un obiect în memoria cache pentru a răspunde la client:

- dacă este disponibil, returnează răspunsul clientului, fără a accesa deloc serverul web;

- în absența unui astfel de obiect, Varnish transmite cererea către serverul web, primește un răspuns de la acesta și apoi îl returnează clientului (răspunsul de pe serverul web poate fi, de asemenea, stocat în cache).

Problema este că Varnish 4. * nu acceptă SSL, care necesită ca browserele să funcționeze cu HTTP / 2, așa că nu putem să-i spunem lui Varnish să asculte pe portul 443.

Soluția cu Nginx

O soluție posibilă este adăugarea Nginx înainte de vopsea. El va fi responsabil pentru funcționarea HTTP / 2, va suporta SSL și va redirecționa astfel de cereri prin HTTP / 1.1 la Varnish. Noul nostru sistem arată acum:

Instalarea Nginx

Versiunea minimă a Nginx ar trebui să fie de cel puțin 1.9.5 (numai începând cu această versiune în Nginx, modulul necesar este disponibil pentru noi - ngx_http_v2_module). Folosesc Mac OSX, așa că o să scriu despre instalarea lui cu ajutorul vopselei.

Avem nevoie de două module, una pentru HTTP / 2 și una pentru detectarea IP reală după solicitări de proxy. Numele opțiunilor de care avem nevoie pot fi consultate folosind:

Pentru a instala Nginx, efectuați:

De asemenea, puteți adăuga Nginx la pornire:

Certificat SSL

În plus, vom avea nevoie de un certificat SSL. Există multe modalități de a obține, dar acum ne vom concentra pe generarea cu openssl:

Rețineți că atunci când generați un certificat, va trebui să specificați domeniul în pasul Nume comun. Atunci când utilizați un astfel de certificat, browserul va raporta că certificatul nu este sigur, însă pentru scopurile demo este destul de normal.

Configurarea Nginx (HTTP / 2, SSL)

Acum avem totul pentru a configura Nginx:

Configurarea lacului

Dosar minim * .vcl pentru Varnish:

Apoi, trebuie să executați Varnish pe portul 80:

Alternativ, în această etapă, puteți specifica flagul -b (în loc de fișierul * .vcl, ca în -a).

Configurarea serverului web

Ca server web, folosesc Nginx (da, în schema noastră vor fi 2 Nginx :)). În setările Varnish, am indicat că backend-ul asculta pe portul 8080, deci trebuie să configurați Nginx în consecință. Adăugați un server suplimentar la setările Nginx:

Testarea cu Chrome

Pentru a testa vizual funcționarea schemei, instalați extensia pentru Chrome - HTTP / 2 și indicatorul SPDY.

Dezvoltarea lacului

Bazat pe unul dintre interviurile recente cu Software-ul Varnish Software CTO Per Buer. ei fac o treabă serioasă în direcția HTTP / 2:

H / 2 este acum primul pe lista noastră. Am petrecut ani de zile lucrand la diferite schimbari in Varnish pentru a ne pregati pentru H / 2. Ultimele două versiuni ale lui Varnish erau pregătitoare pentru el.

Sper ca în noua versiune a Cache-ului Varnish să fie adăugat suport pentru HTTP / 2 și vom putea elimina din infrastructura noastră componente precum Nginx suplimentar.

Nu contează dacă utilizați Varnish pentru cache sau module Nginx, cu siguranță că ar trebui să lucrați cu HTTP / 2 astăzi, deoarece acest lucru dă rezultate tangibile și necesită un minim de timp pentru tuning. În plus, în exemplul nostru simplificat, toate resursele vor fi disponibile prin porturile 443, 80 și 8080. Dacă trebuie să restricționați accesul, va trebui să adăugați o redirecționare din IP extern la nivelul Varnish sau Nginx.







Articole similare

Trimiteți-le prietenilor: