Omogućavanje HTTP/2
Rješavanje problema
Plesk ima izvornu HTTP/2 podršku. Proces njegove implementacije zahtijeva pažljivo planiranje, iako je uvođenje HTTP/2 na Plesk puno lakše u usporedbi s drugim kontrolnim pločama. Ovaj se vodič odnosi na razne operacijske sustave. Ovdje navedeni koraci funkcionirat će sve dok imate dovoljno Plesk i OpenSSL verzija. Opisat ću ove zahtjeve u "Korak 1: Provjera zahtjeva".
Trebali biste uzeti u obzir da će mnogi preglednici podržavati HTTP/2 samo za vaše web mjesto ako koristite SSL certifikat. Kada se SSL certifikat ne koristi, sadržaj se neće posluživati putem HTTP/2. Srećom, postoji mnogo načina za dobivanje SSL certifikata. Ako ste zainteresirani za dobivanje certifikata Let's Encrypt, pogledajte ovaj vodič za stvaranje certifikata na Plesku: Encryptirajte na Plesku .
Iako postoji velika šansa da možete omogućiti HTTP/2, a da to vaši korisnici ili posjetitelji ne primjete (i bez zastoja), trebali biste najaviti ovo održavanje. U slučaju da vaš paket SSL šifri nije ispravno konfiguriran, moglo bi doći do zastoja. Srećom, vrlo je lako poništiti promjene pomoću Pleskovog ugrađenog alata.
Trebali biste biti potpuno sigurni da nije bilo izravnih promjena u konfiguracijskim datotekama, jer ćemo neke konfiguracijske datoteke prepisati. Međutim, nema razloga za brigu u slučaju da ste izmjene izvršili isključivo pomoću podržanih metoda (u prilagođenim datotekama).
Ako je moguće, trebali biste pokrenuti drugi Vultr poslužitelj u oblaku s običnom instalacijom Pleska i izvršiti naredbu(e) u nastavku. Zatim, na temelju njegovog uspjeha (ili neuspjeha), možete poduzeti korake za trenutno otklanjanje pogrešaka i/ili rješavanje svih problema koji bi se mogli pojaviti u budućim implementacijama HTTP/2 na proizvodnim poslužiteljima koji se trenutno koriste.
Omogućavanje HTTP/2
Korak 1: Provjera zahtjeva
Već iz kutije možete omogućiti HTTP/2 podršku za obrnuti proxy koji je Plesk implementiran. U slučaju da niste sigurni koristi li vaš poslužitelj obrnuti proxy, trebali biste provjeriti "Service Monitor". Ako vidite i Apache i Nginx koji su tamo navedeni, sigurno je pretpostaviti da vaša instalacija trenutno koristi obrnuti proxy. Ako vidite samo Apache ili samo Nginx, najvjerojatnije ćete koristiti jedan web poslužitelj.
U jezgri postoji jedan specifičan zahtjev koji je apsolutno neophodan da bi HTTP/2 radio, a to je verzija OpenSSL s podrškom za ALPN.
Međutim, ako imate Plesk verziju 12.5.30 ili noviju instaliranu na CentOS / RHEL 7, Ubuntu 14.04, Debian 8 ili noviji, Nginx se implementira s podrškom za ALPN izvan kutije.
Ako imate stariju verziju Pleska ili operativnog sustava, možete nadograditi neke pakete. Međutim, ja to ne podržavam niti dokumentiram. Ove verzije i operativni sustavi su vrlo stari, a najbolja praksa bi bila da ih ažurirate. Uzmite u obzir i sigurnosne rizike korištenja zastarjelog softvera.
Ne postoji dokument koji eksplicitno navodi koji su operativni sustavi i verzije kompatibilni s HTTP/2 na Plesku; međutim, ako koristite najnoviju verziju (u vrijeme kada je ovaj vodič objavljen), trebali biste ispuniti zahtjeve. Možete sa sigurnošću pretpostaviti da stariji operativni sustavi kao što je CentOS / RHEL 5 neće biti kompatibilni.
Osim zahtjeva za verziju OpenSSL, imajte na umu da Apache ne mora nužno biti kompatibilan i s HTTP/2. HTTP/2 podrška za Apache dostupna je od verzije 2.4.17, ali u slučaju da koristite obrnuti proxy (što je zadana postavka u Plesku) samo verzija Nginxa mora biti dovoljna. Pozadinski poslužitelj, Apache, ne bi morao biti kompatibilan. Možete se obratiti "Upravitelju usluga" u Plesku kako biste bili sigurni da koristite obrnuti proxy. Kada je Nginx naveden tamo, sigurno je pretpostaviti da su Apache i Nginx instalirani kao postavka obrnutog proxyja gdje Nginx djeluje kao frontend poslužitelj.
Sljedeća naredba pokazuje je li Nginx aktiviran ili ne.
/usr/local/psa/admin/bin/nginxmng -s
Za OpenSSL trebate imati barem verziju 1.0.1. Možete provjeriti pomoću sljedeće naredbe:
rpm -qa | grep openssl
Ovo će ispisati verziju sličnu:
openssl-1.0.1e-42.el6_7.4.x86_64
Ako verzija OpenSSL-a nije jednaka ili veća od 1.0.1, trebali biste ažurirati svoj operativni sustav. Plesk implementiran na novijim operativnim sustavima koristit će OpenSSL 1.0.1 iz kutije.
Korak 2: Omogućavanje HTTP/2 u Plesku
Ovisno o korištenom operativnom sustavu, omogućite HTTP/2 pomoću http2_prefalata. Ovu naredbu treba izvršiti kao root.
Omogućavanje HTTP/2 na CentOS / RHEL
Izvršiti: /usr/local/psa/bin/http2_pref enable
Omogućavanje HTTP/2 na Ubuntu / Debianu
Izvršiti: /opt/psa/bin/http2_pref enable
Korak 3: Poboljšajte paket šifriranja
Korištenje dobrog paketa šifri nevjerojatno je važno za sigurnost. Podrška zastarjelim protokolima učinkovito će umanjiti učinak vaših sigurnosnih mjera. Obavezno prilagodite dostupne protokole i dostupne TLS verzije pomoću ugrađenog Plesk alata sslmng.
Na primjer, omogućavanjem sljedećih šifri i TLS verzija osigurat će se kompatibilnost s HTTP/2. Ako niste sigurni u šifre i verzije koje biste trebali omogućiti, držite se sljedećih postavki:
plesk sbin sslmng --services=nginx --custom --ciphers="EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EECDH+CHACHA20:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EDH+CHACHA20" --protocols="TLSv1 TLSv1.1 TLSv1.2"
Ova naredba mijenja /etc/nginx/conf.d/ssl.conf. Ovu datoteku možete izmijeniti izravno, ali korištenje gore navedene naredbe održat će promjene u Plesk ažuriranjima.
Da biste dobili "savršenu tajnost naprijed" pomoću drugog paketa šifri, možete isprobati sljedeće šifre:
ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
Dostupni su mnogi paketi šifri, a trebali biste odabrati onaj koji najbolje odgovara vašim potrebama. Trebali biste konzultirati web stranicu kao što je Cipherli.st kako biste prikupili paket šifri koji odgovara vašim potrebama. Ako ga navedete u sslmngalatu, paket šifri će se odmah koristiti.
Da biste provjerili TLS podršku vašeg preglednika kao klijenta, koristite alat Qualys SSL . Kada ne dopuštate dovoljno šifri ili TLS verzija, neke web stranice mogu postati nedostupne.
Korak 4: Provjera HTTP/2 kompatibilnosti
Nakon što omogućite HTTP/2, trebali biste provjeriti jesu li vaše web stranice i web poslužitelj dostupni putem HTTP/2. Za to postoji vrlo zgodan web-bazirani alat: HTTP/2 Test .
Kako biste dobili točan rezultat, provjerite jeste li onemogućili sve obrnute proxy servere koji se nalaze ispred vašeg poslužitelja. Na primjer, ako koristite CDN koji ne podržava HTTP/2, alat za testiranje će pokazati da vaša web stranica ne podržava HTTP/2 čak i ako je uspješno omogućena na razini poslužitelja. Baš kao i obrnuto: ako imate obrnuti proxy kao što je Cloudflare ispred vaše web stranice (koja podržava HTTP/2), alat će uvijek vratiti HTTP/2 kao da je omogućen i radi, bez obzira na njegovu funkcionalnost na razini poslužitelja .
Ako neki preglednici odbijaju učitati vaše web-mjesto(e) ili poslužiti bilo koji sadržaj s vašeg web-poslužitelja nakon što omogućite HTTP/2, trebali biste analizirati svoje SSL postavke pomoću Qualysovog SSL alata .
(Izborno) Vraćanje konfiguracije HTTP/2
Ako je potrebno, ako trebate vremena za otklanjanje pogrešaka, možete (privremeno) onemogućiti HTTP/2 jednostavnim izvršavanjem naredbe u nastavku. Nakon što želite ponovno omogućiti HTTP/2, jednostavno izvršite naredbu za njegovu aktivaciju i ponovno pokušajte doći do bilo koje vaše web stranice. Ne postoji način da se omogući ili onemogući HTTP/2 za određene domene ili web-mjesta; to je postavka za cijeli poslužitelj.
Onemogućavanje HTTP/2 na CentOS / RHEL
Izvršiti: /usr/local/psa/bin/http2_pref disable
Onemogućavanje HTTP/2 na Ubuntu / Debianu
Izvršiti: /opt/psa/bin/http2_pref disable
Rješavanje problema
S obzirom na mnoge komponente poslužitelja uključene u omogućavanje HTTP/2, u nekim slučajevima možda ćete morati riješiti probleme kada se web-mjesta ne učitavaju ispravno ili se uopće ne učitavaju nakon aktivacije HTTP/2 podrške.
Napomena: pazite da ne onemogućite HTTP/2 podršku pomoću http2_prefalata kada slijedite ove korake.
Provjerite zahtjeve
Prvo provjerite ispunjavate li zahtjeve navedene na početku ovog članka.
Ponovno kreirajte Nginx konfiguraciju
Ako ispunjavate zahtjeve za HTTP/2, možete pokušati ponovno stvoriti Nginx konfiguracijske datoteke. Trebali biste znati da će to ukloniti sve prilagođene konfiguracije, stoga unaprijed napravite sigurnosnu kopiju direktorija konfiguracije Nginxa. Kako se konfiguracijske datoteke mogu širiti po poslužitelju, bolje je jednostavno napraviti snimku ili napraviti sigurnosnu kopiju. Zatim izvršite ovu naredbu:
/usr/local/psa/admin/bin/httpdmng --reconfigure-all
Ponovno provjeri paket šifri
Ako ni to nema efekta, najvjerojatnije je kriv paket šifri. Ponovo izvršite sljedeću naredbu:
plesk sbin sslmng --services=nginx --custom --ciphers="EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EECDH+CHACHA20:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EDH+CHACHA20" --protocols="TLSv1 TLSv1.1 TLSv1.2"
Greška u panel.ini
Provjerite /usr/local/psa/admin/conf/panel.inisadrži li datoteka sljedeći sadržaj:
[webserver]
nginxHttp2 = true
Možete brzo provjeriti sadrži li datoteka ovo izvršavanjem: cat /usr/local/psa/admin/conf/panel.ini | grep nginxHttp2
Ne vraća li ova naredba ništa? Tada je najvjerojatnije datoteka samo za čitanje, na primjer zbog chattratributa. Možda je dodana kada je http2_prefnaredba (za omogućavanje HTTP/2) izvršena.
Provjerite koristi li se SSL
Kada web-mjesto ne koristi SSL, vratit će se na HTTP/1.1. Samo web-mjesta koja koriste SSL posluživat će se koristeći HTTP/2. Pazite da HTTP/2 ne provodite lokalno u svim slučajevima jer to neće funkcionirati i nije problem na strani poslužitelja.
Druge opcije
Ako ni to ne uspije, trebate se posavjetovati sa stručnjakom za Plesk, na primjer na Plesk forumima. Ipak, u mnogim slučajevima gornji će koraci riješiti većinu problema.
Posljednja mjera koju možete poduzeti je jednostavno ponovno pokretanje poslužitelja. U nekim čudnim slučajevima ovo je riješilo probleme iz vedra neba. Međutim, uvijek biste trebali moći točno odrediti probleme kako biste spriječili da se (iznenada) ponovno ponove.
Ovim je moj vodič završen, hvala na čitanju.