Pikat kryesore
HTTP/2 dhe SSL
FAQ
Pjesa 1: Apache (server në internet)
Pjesa 2: CURL
HTTP/2 është versioni më i ri i protokollit HTTP, i bazuar në SPDY. Zhvillimi i tij u iniciua nga Google dhe HTTP/2 bazohet kryesisht në bazën e kodit dhe konceptet e SPDY.
SPDY tani është zhvlerësuar dhe miratimi në mbarë botën për HTTP/2 është në progres. Shumë kompani pritëse kanë ofruar tashmë mbështetje për HTTP/2 për shkak të shpejtësisë së shtuar.
Në kohën e shkrimit, DirectAdmin nuk ofron një mënyrë me një klikim për të aktivizuar HTTP/2. Megjithatë, ka shumë mënyra për të arritur mbështetjen e HTTP/2. Metoda e përshkruar më poshtë është dëshmuar të jetë qasja më e fortë dhe më e qëndrueshme.
Disa komponentë duhet të përditësohen në mënyrë që HTTP/2 të hyjë në fuqi. Për shkak të kësaj, unë ju këshilloj fuqimisht të bëni një fotografi. Nëse është e mundur, ndiqni këtë udhëzues në një server krejtësisht të ri.
Ky udhëzues përbëhet nga dy pjesë: aktivizimi i mbështetjes HTTP/2 në serverin e internetit (Apache) për klientët (vizitorët) dhe aktivizimi i HTTP/2 në cURL. Aktivizimi i HTTP v2 për cURL detyron kërkesat cURL që vijnë nga serveri juaj të përdorin HTTP/2 për serverët e tij të destinacionit, nëse është e mundur.
Pikat kryesore
- Nuk kërkohet përditësimi i Apache dhe cURL për të përdorur HTTP/2. Është mirë nëse ndiqni njërin nga udhëzuesit, pasi ato funksionojnë veçmas nga njëri-tjetri.
- Ka pasur disa raste të çuditshme në të cilat Apache dhe HTTP/2 duket se funksionojnë mirë, por ngarkimi është i suksesshëm në shfletues "të rastësishëm" dhe faqet bëhen të paarritshme (timeout) për të tjerët. Thjesht kthimi në konfigurimin origjinal të Apache do ta rregullojë këtë, pasi Apache nuk do të dijë për HTTP/2 dhe nuk do të përpiqet të shërbejë përmbajtje mbi të.
- Gjithmonë bëni një kopje rezervë ose bëni një fotografi paraprakisht. Aktivizimi i HTTP/2 mund të jetë një proces relativisht i brishtë, kështu që është e rëndësishme të jeni në gjendje të ktheni ndryshimet nëse është e nevojshme.
- Rikompilimi i softuerit mund të shkaktojë gjithmonë ndërprerje të lehtë. Në disa raste, kjo është nën një minutë, por nuk ka asnjë mënyrë për të treguar saktësisht. Ju duhet të jeni të përgatitur për një kohë joproduktive të paktën.
- Për këtë udhëzues ju duhet qasje rrënjësore në server. Nëse nuk keni aftësinë për të ngritur nivelin e lejeve tuaja në rrënjë, duhet të kontaktoni administratorin e serverit për të aktivizuar HTTP/2 në server.
HTTP/2 dhe SSL
Megjithëse nuk është një kërkesë teknike nga vetë HTTP/2, në shumicën e rasteve do t'ju duhet një certifikatë SSL për të përdorur HTTP/2. Siç u përmend, HTTP/2 teknikisht nuk e kërkon këtë, por shumë shfletues (Safari, Chrome, Firefox, etj.) e kanë krijuar këtë standard. Përmbajtja nuk do të shërbehet mbi HTTP/2 kur një faqe ngarkohet pa SSL duke përdorur këta shfletues. Duke marrë parasysh që shumica e përdoruesve përdorin këta shfletues (dhe të tjerë) të cilët gjithashtu marrin pjesë në këtë standard, ju duhet të përdorni një certifikatë SSL.
Nëse jeni duke kërkuar për një certifikatë falas SSL, duhet t'i hidhni një sy një prej udhëzuesve tanë Let's Encrypt:
Rekomandohet: Instalimi i Let's Encrypt në DirectAdmin
Panelet alternative të kontrollit:
Udhëzues të përgjithshëm:
FAQ
A e dokumenton ky udhëzues instalimin e Brotli?
Jo, nuk ka asnjë metodë të përshkruar për instalimin e Brotli së bashku me HTTP/2 në këtë artikull.
Përpilimi dështon pa asnjë arsye, dhe unë kam ndjekur hapat e saktë të përshkruar në këtë artikull. Si ta zgjidh këtë?
Edhe pse ka shumë arsye të mundshme për këtë, duke marrë parasysh mjedise të ndryshme dhe të ngjashme, ndoshta, cilësimet e vendndodhjes tuaj nuk janë të sakta. Provoni të vendosni LC_ALL=Cpërpara komandave tuaja, kështu që komanda për rikompilimin e Apache-së do të duket si kjo për shembull: LC_ALL=C ./build apache
Mos harroni hapësirën midis LC_ALL=Cdhe komandës!
A do të humbas ndonjë të dhënë?
Në rast se aktualisht jeni duke përdorur një konfigurim të kundërt të përfaqësuesit, për shembull me Apache dhe Nginx, duhet ta ktheni atë në Apache, në të cilin rast do të humbisni vërtet skedarët tuaj të konfigurimit Nginx. Në rast se keni bërë konfigurime të personalizuara të VirtualHost (qoftë përmes linjës së komandës ose vetë DirectAdmin), duhet t'i ndryshoni ato në bazë të domenit në mënyrë që versionet e Apache të qëndrojnë aktive. Ju nuk do të humbni asnjë të dhënë në lidhje me të dhënat e përdoruesit, përmbajtjen e faqes në internet, bazat e të dhënave, etj.
A do të më ndalojnë këto versione të personalizuara nga përditësimi i paketave dhe softuerit në të ardhmen?
Në përgjithësi, nuk ka nevojë të shqetësoheni për këtë. Duke marrë parasysh konfigurimin modular të DirectAdmin (dhe rrjedhimisht atë të CustomBuild), ju duhet të jeni në gjendje të reduktoni ose përmirësoni në versione të tjera të softuerit në të ardhmen pa asnjë problem. Megjithëse duhet të dokumentoni ndryshimet në rast se në të ardhmen kërkohet një rrugë alternative e përmirësimit, nuk duhet të ketë nevojë të shqetësoheni për versionet e papajtueshmërisë me versionet e reja të softuerit.
DirectAdmin nuk ofron HTTP/2 jashtë kutisë; me siguri kjo do të thotë se nuk është në përputhje ose ata kanë arsyet e tyre për të mos qenë. Pse kërkohet kjo zgjidhje?
Metodat për instalimin dhe aktivizimin e HTTP/2 të përshkruara më poshtë nuk janë aq shumë zgjidhje, por thjesht përditësime të paketës dhe ndryshime të konfigurimit. Për shkak të konfigurimit modular të DirectAdmin, këto ndryshime janë krejtësisht të mira dhe nuk duhet të shkaktojnë probleme ose probleme të tjera. Është e vështirë të përcaktohet pse DirectAdmin nuk e mbështet këtë jashtë kutisë, duke qenë se autorët nuk kanë dhënë një shpjegim për këtë. Sidoqoftë, një përfundim mjaft i fortë është se DirectAdmin përdor paketat e versioneve nga sistemi operativ. Këto në përgjithësi nuk janë aq të përditësuara sa paketat e mëposhtme. Nuk ka asgjë të keqe me HTTP/2, vetë teknologjinë dhe përputhshmërinë e tij. Ashtu si shumë teknologji të tjera, mund të duhet pak kohë për t'u përshtatur në mënyrë origjinale.
Cilat janë rreziqet e mundshme të aktivizimit të HTTP/2 me Apache?
Në aktivizimin e HTTP/2 (që përbëhet nga një proces përmirësimi dhe konfigurimi) ka shumë variabla që mund të rezultojnë jo standarde. Megjithatë, rreziku më i madh qëndron në gabimin njerëzor. Bëni një fotografi paraprakisht, sigurohuni që t'u njoftoni përdoruesit tuaj mirëmbajtjen (nëse ka ndonjë në server përveç vetes) dhe jini të kujdesshëm. Për më tepër, mos kopjoni dhe ngjisni komandat pa menduar se çfarë bëjnë më parë.
Unë rekomandoj fuqimisht të rrotulloni përkohësisht një shembull të veçantë të resë kompjuterike Vultr me DirectAdmin dhe të ecni nëpër hapat. Nëse diçka shkon keq në një instalim 'të freskët', do të dini se ku dhe si ta korrigjoni atë në mënyrë që të mos keni nevojë ta bëni atë në një mjedis prodhimi.
Pjesa 1: Apache (server në internet)
Nëse jeni duke përdorur aktualisht një përfaqësues të kundërt, duhet të ktheheni në një mjedis vetëm me Apache. Kjo për shkak se HTTP/2 është shumë e vështirë të korrigjohet nëse diçka shkon keq. Duke qenë në gjendje të përdorni funksionalitetin e integruar HTTP/2 të Apache, ju jeni në gjendje të eliminoni në mënyrë efektive një pjesë shumë të madhe të telasheve.
Hapi 1: Përmirësimi i OpenSSL
Në shumë raste, versioni juaj OpenSSL nuk është i pajtueshëm me ALPN, i cili kërkohet për HTTP/2. Prandaj, le të aktivizojmë ALPN duke përditësuar OpenSSL.
Së pari, le të sigurohemi që versioni juaj OpenSSL nuk është i pajtueshëm duke ekzekutuar:
openssl version
Nëse versioni juaj OpenSSL është më pak se 1.1.0f, ekzekutoni si më poshtë si rrënjë. Përndryshe, kalo te hapi 2.
cd ~
wget ftp://ftp.openssl.org/source/openssl-1.1.0f.tar.gz
tar xzf openssl-1.1.0f.tar.gz
cd openssl-1.1.0f
./config --prefix=/usr/local/lib_http2 no-ssl2 no-ssl3 zlib-dynamic -fPIC
make depend
make install
Hapi 2: Instalimi i nghttp2
Në mënyrë që HTTP/2 të funksionojë, duhet të instalojmë nghttp2. Nghttp2 është një implementim i HTTP/2 (dhe HPACK) në C. Nghttp2 është një version i kombinuar i klientit, serverit dhe përfaqësuesit HTTP/2 në C.
Për të instaluar nghttp2, ekzekutoni komandat e mëposhtme. Për fat të mirë, nghttp2 mund të ndërtohet direkt nga CustomBuild.
cd /usr/local/directadmin/custombuild
./build update
./build nghttp2
Hapi 3: Aktivizimi i HTTP/2 në Apache
Ne duhet të ndryshojmë disa vlera në skedarin e konfigurimit Apache në mënyrë që ai të përdorë HTTP/2. Kur serveri në internet nuk po merr udhëzime për të përdorur një version alternativ HTTP, ai nuk do ta përdorë atë. Prandaj ne duhet të shtojmë HTTP/2 në skedarin e konfigurimit.
Që këto ndryshime të hyjnë në fuqi, është i nevojshëm një rindërtim i Apache përmes CustomBuild. Meqenëse parametrat dhe vlerat e përdorura nga CustomBuild gjatë ndërtimit të softuerit përcaktohen në një skedar konfigurimi të dedikuar, praktika më e mirë është t'i vendosni këto ndryshime në një skedar të veçantë konfigurimi të personalizuar.
Shënim: nëse nuk i vendosni këto ndryshime në një skedar të personalizuar, me shumë mundësi ato do të mbishkruhen dhe konfigurimi juaj do të prishet. Ju lutemi ndiqni udhëzimet e përshkruara më poshtë.
Ekzekutoni komandat e mëposhtme në mënyrë që të krijoni skedarin dhe ta plotësoni paraprakisht me vlerat e paracaktuara në mënyrë që të mund ta ndryshojmë atë më pas:
mkdir -p /usr/local/directadmin/custombuild/custom/ap2
cp -p /usr/local/directadmin/custombuild/configure/ap2/configure.apache /usr/local/directadmin/custombuild/custom/ap2/configure.apache
Deri më tani, ne kemi një skedar të personalizuar i cili është identik me skedarin e konfigurimit të paracaktuar për Apache të përdorur nga CustomBuild. Duhet të ndryshojmë /usr/local/directadmin/custombuild/custom/ap2/configure.apacheskedarin duke zëvendësuar vargun e mëposhtëm:
"--with-ssl=/usr" \
me:
"--enable-http2" \
"--enable-ssl-staticlib-deps" \
"--with-ssl=/usr/local/lib_http2" \
Shënim: Sigurohuni që të mos ketë hapësirë të bardhë pas ndonjë prej vijave të pasme . Hapësira e tepërt atje do të bëjë që ndërtimi të prishet.
Më pas, rindërtoni Apache. CustomBuild do të përdorë skedarin e personalizuar të konfigurimit që sapo keni krijuar:
./build apache
Hapi 4: Ndryshimi i konfigurimit të Apache
Apache tani është rindërtuar duke përfshirë modulet dhe cilësimet e nevojshme për HTTP/2. Kjo do të thotë se ne tani kemi një version Apache të instaluar në serverin tonë me mbështetje për HTTP/2, por ne duhet t'i themi Apache që ta përdorë atë në fillim.
Shtoni rreshtat e mëposhtëm në /etc/httpd/conf/extra/httpd-includes.conf:
ProtocolsHonorOrder On
Protocols h2 h2c http/1.1
Ruani këto ndryshime dhe rishkruani skedarët e konfigurimit në mënyrë që ato të jenë të qëndrueshme gjatë rindërtimit:
cd /usr/local/directadmin/custombuild
./build rewrite_confs
HTTP/2 tani duhet të jetë aktiv në serverin tuaj të internetit (Apache).
Hapi 5: Rinisni serverin
Rinisni serverin për t'u siguruar që ndryshimet tona vazhdojnë gjatë rindezjeve. Ju lutemi rindizni serverin përmes panelit të kontrollit Vultr ose duke ekzekutuar rebootkomandën.
Hapi 6: Testoni HTTP/2
Funksionaliteti i HTTP/2 mund të testohet lehtësisht duke përdorur mjetin e mëposhtëm: Testi HTTP/2
Duke marrë parasysh se HTTP/2 është specifike për serverin dhe nuk mund të kufizohet në një palë domenesh ose faqe interneti specifike, futja e çdo emri domeni që tregon serverin apo edhe adresën IP të serverit duhet të funksionojë.
Testi do t'ju tregojë nëse është në gjendje të arrijë në serverin e uebit përmes HTTP/2. Në rast se mjeti thotë se HTTP/2 është aktivizuar në serverin tuaj, faqet e internetit të DirectAdmin tani mund të arrihen përmes HTTP/1.1 ose HTTP/2. Në rast se mbështetja HTTP/2 nuk është e disponueshme për klientin (vizitorin), shfletuesi i tij do të kthehet në HTTP/1.1.
Në rast se mjeti nuk mund të arrijë në serverin tuaj të internetit përmes HTTP/2, ndiqni përsëri hapat e mësipërm. Në përgjithësi (pasi hapat e mësipërm nuk mbishkruajnë asgjë në mënyrë aktive) kjo nuk do të dëmtojë ose prishë konfigurimin tuaj.
Pjesa 2: CURL
Unë rekomandoj përditësimin e cURL në mënyrë që të jetë në gjendje të arrijë serverët me mbështetje HTTP/2. Në rast se një server nuk mbështet HTTP/2, ai do të kthehet në HTTP/1.1.
Hapi 1: Shtimi i skedarit të konfigurimit të personalizuar
Ashtu si me Apache, ne do të krijojmë një skedar konfigurimi me porosi, kështu që cURL i ndërtuar nga CustomBuild do të përdorë cilësimet tona të personalizuara.
Krijo drejtorinë:
mkdir -p /usr/local/directadmin/custombuild/custom/curl
Krijo skedarin:
touch /usr/local/directadmin/custombuild/custom/curl/configure.curl
Kopjoni dhe ngjisni përmbajtjen e mëposhtme në skedar:
#!/bin/sh
perl -pi -e 's|CURL_CHECK_PKGCONFIG\(zlib\)|#CURL_CHECK_PKGCONFIG(zlib)|g' configure.ac
LIBS="-ldl" ./configure --with-nghttp2=/usr/local --with-ssl=/usr/local/lib_http2
Siç mund ta shihni, këto përmbajtje tregojnë që cURL të kompilohet duke përdorur lib_http2bibliotekën SSL.
Ruani skedarin dhe jepini lejet e duhura:
chmod 700 /usr/local/directadmin/custombuild/custom/curl/configure.curl
Hapi 2: Ndërtimi i cURL
Më pas, gjithçka që duhet të bëjmë është të ndërtojmë cURL.
cd /usr/local/directadmin/custombuild
./build curl
cURL tani është përpiluar me mbështetjen e HTTP 2.