Jak aktivovat podporu HTTP/2 na DirectAdmin (CentOS)

HTTP/2 je nejnovější verze protokolu HTTP, založená na SPDY. Jeho vývoj inicioval Google a HTTP/2 je z velké části založen na kódové základně a konceptech SPDY.

SPDY je nyní zastaralý a celosvětově probíhá přijetí HTTP/2. Mnoho hostingových společností již poskytlo podporu pro HTTP/2 kvůli jeho vyšší rychlosti.

V době psaní tohoto článku DirectAdmin neposkytuje způsob, jak povolit HTTP/2 jedním kliknutím. Existuje však několik způsobů, jak dosáhnout podpory HTTP/2. Níže uvedená metoda se ukázala jako nejrobustnější a nejstabilnější přístup.

Aby se HTTP/2 projevil, je třeba aktualizovat několik komponent. Z tohoto důvodu vám důrazně doporučuji udělat snímek. Pokud je to možné, postupujte podle tohoto návodu na zcela novém serveru.

Tato příručka se skládá ze dvou částí: povolení podpory HTTP/2 na webovém serveru (Apache) pro klienty (návštěvníky) a aktivace HTTP/2 v cURL. Povolení HTTP v2 pro cURL přinutí požadavky cURL pocházející z vašeho serveru, aby pro své cílové servery, pokud je to možné, využívaly HTTP/2.

Klíčové body

  • Pro použití HTTP/2 není nutné aktualizovat Apache i cURL. Je v pořádku, pokud budete postupovat podle obou pokynů, protože fungují odděleně od sebe.
  • Vyskytlo se několik podivných případů, kdy se zdá, že Apache a HTTP/2 fungují dobře, ale načítání je úspěšné v ''náhodných'' prohlížečích a stránky se stávají nedostupnými (timeout) v jiných. Pouhým návratem k původní konfiguraci Apache se to vyřeší, protože Apache nebude vědět o HTTP/2 a nepokusí se přes něj poskytovat obsah.
  • Vždy si zálohujte nebo udělejte snímek předem. Povolení HTTP/2 může být poměrně křehký proces, takže je důležité mít možnost v případě potřeby vrátit změny.
  • Překompilování softwaru může vždy způsobit mírné prostoje. V některých případech je to méně než minuta, ale nelze to přesně určit. Měli byste být připraveni alespoň na nějaké prostoje.
  • Pro tuto příručku potřebujete přístup root k serveru. Pokud nemáte možnost zvýšit úroveň oprávnění na root, měli byste kontaktovat správce serveru, aby na serveru povolil HTTP/2.

HTTP/2 a SSL

Ačkoli se nejedná o technický požadavek samotného HTTP/2, ve většině případů budete k použití HTTP/2 potřebovat certifikát SSL. Jak již bylo zmíněno, HTTP/2 to technicky nevyžaduje, ale mnoho prohlížečů (Safari, Chrome, Firefox atd.) tento standard vytvořilo. Obsah nebude poskytován přes HTTP/2, když je stránka načtena bez SSL pomocí těchto prohlížečů. Vzhledem k tomu, že většina uživatelů používá tyto prohlížeče (a další), které se také účastní tohoto standardu, měli byste používat certifikát SSL.

Pokud hledáte bezplatný certifikát SSL, měli byste se podívat na jednoho z našich průvodců Let's Encrypt:

Doporučeno: Instalace Let's Encrypt na DirectAdmin

Alternativní ovládací panely:

Obecní průvodci:

FAQ

Dokumentuje tato příručka instalaci Brotli?

Ne, v tomto článku není uvedena žádná metoda pro instalaci Brotli vedle HTTP/2.

Kompilace se nezdaří bez důvodu a já jsem postupoval přesně podle kroků uvedených v tomto článku. jak to vyřeším?

I když pro to existuje mnoho možných důvodů, s ohledem na různá prostředí a podobně, vaše nastavení národního prostředí nemusí být správné. Zkuste vložit LC_ALL=Cpřed své příkazy, takže příkaz pro rekompilaci Apache bude vypadat například takto: LC_ALL=C ./build apache Nezapomeňte na mezeru mezi LC_ALL=Cpříkazem a!

Přijdu o nějaká data?

V případě, že aktuálně používáte reverzní nastavení proxy, například s Apache a Nginx, měli byste jej vrátit zpět na Apache, v takovém případě byste skutečně ztratili konfigurační soubory Nginx. V případě, že jste vytvořili vlastní konfigurace VirtualHost (ať už prostřednictvím příkazového řádku nebo samotného DirectAdmin), měli byste je změnit na základě domény, aby verze Apache zůstaly aktivní. Neztratíte žádná data týkající se uživatelských dat, obsahu webových stránek, databází atd.

Zabrání mi tyto vlastní verze v budoucnu aktualizovat balíčky a software?

Obecně se toho není třeba obávat. Vezmeme-li v úvahu modulární nastavení DirectAdmin (a tedy CustomBuild), měli byste být schopni v budoucnu bez problémů přejít na nižší verzi nebo upgradovat na jiné verze softwaru. Ačkoli byste měli zdokumentovat změny pro případ, že bude v budoucnu vyžadována alternativní cesta upgradu, neměli byste se obávat nekompatibility verzí s novými verzemi softwaru.

DirectAdmin nenabízí HTTP/2 hned po vybalení; to jistě znamená, že to není kompatibilní nebo mají své důvody, proč tomu tak není. Proč je toto řešení vyžadováno?

Níže popsané metody instalace a povolení HTTP/2 nejsou ani tak řešením, ale pouze pouhými aktualizacemi balíčků a změnami konfigurace. Díky modulárnímu nastavení DirectAdmin jsou tyto změny naprosto v pořádku a neměly by způsobovat problémy ani jiné potíže. Je těžké určit, proč to DirectAdmin nepodporuje, protože autoři to nevysvětlili. Nicméně docela solidním závěrem je, že DirectAdmin využívá balíčky verzí podle operačního systému. Ty obecně nejsou tak aktuální jako balíčky níže. Na HTTP/2, samotné technologii a její kompatibilitě není nic špatného. Stejně jako mnoho jiných technologií může nějakou dobu trvat, než se nativní adaptace.

Jaká jsou možná rizika aktivace HTTP/2 pomocí Apache?

Při aktivaci HTTP/2 (sestávající z procesu upgradu a konfigurace) existuje mnoho proměnných, které se mohou ukázat jako nestandardní. Největší riziko však spočívá v lidské chybě. Udělejte si snímek předem, nezapomeňte ohlásit údržbu svým uživatelům (pokud na serveru kromě vás nějací jsou) a buďte opatrní. Kromě toho nekopírujte a nevkládejte příkazy, aniž byste nejprve přemýšleli o tom, co dělají.

Vřele doporučuji dočasně spustit samostatnou cloudovou instanci Vultr pomocí DirectAdmin a projít si jednotlivé kroky. Pokud by se při „čerstvé“ instalaci něco pokazilo, budete vědět, kde a jak to odladit, abyste to nemuseli dělat v produkčním prostředí.

Část 1: Apache (webový server)

Pokud v současné době používáte reverzní proxy, měli byste přejít zpět do prostředí pouze Apache. Je to proto, že HTTP/2 je velmi těžké ladit, pokud se něco pokazí. Tím, že budete moci využívat integrovanou funkcionalitu HTTP/2 Apache, jste schopni efektivně eliminovat velkou část problémů.

Krok 1: Upgrade OpenSSL

V mnoha případech vaše verze OpenSSL není kompatibilní s ALPN, což je vyžadováno pro HTTP/2. Proto povolme ALPN aktualizací OpenSSL.

Nejprve se ujistěte, že vaše verze OpenSSL není kompatibilní provedením:

openssl version

Pokud je vaše verze OpenSSL nižší než 1.1.0f, proveďte následující jako root. V opačném případě přejděte ke kroku 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

Krok 2: Instalace nghttp2

Aby HTTP/2 fungovalo, musíme nainstalovat nghttp2. Nghttp2 je implementace HTTP/2 (a HPACK) v C. Nghttp2 je kombinovaná verze HTTP/2 klienta, serveru a proxy v C.

Chcete-li nainstalovat nghttp2, spusťte následující příkazy. Naštěstí lze nghttp2 sestavit přímo z CustomBuild.

cd /usr/local/directadmin/custombuild
./build update
./build nghttp2

Krok 3: Povolení HTTP/2 v Apache

Potřebujeme změnit několik hodnot v konfiguračním souboru Apache, aby mohl používat HTTP/2. Když webový server nedostává pokyny k použití alternativní verze HTTP, nevyužije ji. Proto musíme do konfiguračního souboru přidat HTTP/2.

Aby se tyto změny projevily, je nutné znovu sestavit Apache prostřednictvím CustomBuild. Protože parametry a hodnoty používané CustomBuild při vytváření softwaru jsou určeny ve vyhrazeném konfiguračním souboru, nejlepší praxí je vložit tyto změny do vyhrazeného uživatelského konfiguračního souboru.

Poznámka: Pokud tyto změny nevložíte do vlastního souboru, s největší pravděpodobností budou přepsány a vaše nastavení se přeruší. Postupujte podle pokynů uvedených níže.

Spusťte následující příkazy, abyste vytvořili soubor a předvyplnili jej výchozími hodnotami, abychom jej mohli později změnit:

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

Od této chvíle máme vlastní soubor, který je identický s výchozím konfiguračním souborem pro Apache používaným CustomBuild. Musíme změnit /usr/local/directadmin/custombuild/custom/ap2/configure.apachesoubor nahrazením následujícího řetězce:

"--with-ssl=/usr" \

s:

"--enable-http2" \
"--enable-ssl-staticlib-deps" \
"--with-ssl=/usr/local/lib_http2" \

Poznámka: Ujistěte se, že za žádným zpětným lomítkem není žádné prázdné místo . Přebytečné mezery způsobí přerušení sestavení.

Dále znovu sestavte Apache. CustomBuild použije vlastní konfigurační soubor, který jste právě vytvořili:

./build apache

Krok 4: Změna konfigurace Apache

Apache byl nyní přestavěn včetně nezbytných modulů a nastavení pro HTTP/2. To znamená, že nyní máme na našem serveru nainstalovanou verzi Apache s podporou HTTP/2, ale musíme nejprve sdělit Apache, aby ji skutečně použil.

Přidejte následující řádky do /etc/httpd/conf/extra/httpd-includes.conf:

ProtocolsHonorOrder On
Protocols h2 h2c http/1.1

Uložte tyto změny a přepište konfigurační soubory tak, aby byly trvalé i při přestavbách:

cd /usr/local/directadmin/custombuild
./build rewrite_confs

HTTP/2 by nyní měl být aktivní na vašem webovém (Apache) serveru.

Krok 5: Restartujte server

Restartujte server, abyste se ujistili, že naše změny přetrvávají i po restartu. Restartujte server pomocí ovládacího panelu Vultr nebo provedením rebootpříkazu.

Krok 6: Otestujte HTTP/2

Funkčnost HTTP/2 lze snadno otestovat pomocí následujícího nástroje: HTTP/2 Test

Vzhledem k tomu, že HTTP/2 je specifický pro server a nelze jej omezit na konkrétní pár domén nebo webových stránek, mělo by fungovat zadání libovolného názvu domény odkazujícího na server nebo dokonce IP adresy serveru.

Test vám řekne, zda se dokáže dostat na webový server přes HTTP/2. V případě, že nástroj říká, že je na vašem serveru aktivován protokol HTTP/2, lze nyní weby DirectAdmin získat prostřednictvím protokolu HTTP/1.1 nebo HTTP/2. V případě, že není pro klienta (návštěvníka) dostupná podpora HTTP/2, jeho prohlížeč přejde zpět na HTTP/1.1.

V případě, že se nástroj nemůže dostat na váš webový server prostřednictvím HTTP/2, postupujte znovu podle výše uvedených kroků. Obecně (protože výše uvedené kroky nic aktivně nepřepisují) to nepoškodí ani nenaruší vaše nastavení.

Část 2: cURL

Doporučuji aktualizovat cURL, aby bylo možné dosáhnout na servery s podporou HTTP/2. V případě, že server nepodporuje HTTP/2, přejde zpět na HTTP/1.1.

Krok 1: Přidání vlastního konfiguračního souboru

Stejně jako u Apache vytvoříme vlastní konfigurační soubor, takže cURL vytvořený CustomBuild bude používat naše vlastní nastavení.

Vytvořte adresář:

mkdir -p /usr/local/directadmin/custombuild/custom/curl

Vytvořte soubor:

touch /usr/local/directadmin/custombuild/custom/curl/configure.curl

Zkopírujte a vložte do souboru následující obsah:

#!/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

Jak můžete vidět, tento obsah říká cURL, aby byl zkompilován pomocí lib_http2knihovny SSL.

Uložte soubor a přidělte mu správná oprávnění:

chmod 700 /usr/local/directadmin/custombuild/custom/curl/configure.curl

Krok 2: Vytvoření cURL

Dále vše, co musíme udělat, je vytvořit cURL.

cd /usr/local/directadmin/custombuild
./build curl

cURL byl nyní zkompilován s podporou HTTP 2.


Leave a Comment

Nainstalujte Plesk na CentOS 7

Nainstalujte Plesk na CentOS 7

Používáte jiný systém? Plesk je proprietární ovládací panel webového hostitele, který umožňuje uživatelům spravovat jejich osobní a/nebo klientské webové stránky, databáze

Jak nainstalovat Squid Proxy na CentOS

Jak nainstalovat Squid Proxy na CentOS

Squid je populární bezplatný linuxový program, který vám umožňuje vytvořit webový proxy pro předávání. V této příručce uvidíte, jak nainstalovat Squid na CentOS, aby vás otočil

Jak nainstalovat Lighttpd (LLMP Stack) na CentOS 6

Jak nainstalovat Lighttpd (LLMP Stack) na CentOS 6

Úvod Lighttpd je fork Apache, jehož cílem je být mnohem méně náročný na zdroje. Je lehký, odtud jeho název, a jeho použití je docela jednoduché. Installin

Konfigurace statické sítě a IPv6 na CentOS 7

Konfigurace statické sítě a IPv6 na CentOS 7

VULTR nedávno provedl změny na jejich konci a vše by nyní mělo fungovat dobře po vybalení s povoleným NetworkManagerem. Pokud si přejete deaktivovat

Úprava Icinga2 pro použití modelu Master/Client na CentOS 6 nebo CentOS 7

Úprava Icinga2 pro použití modelu Master/Client na CentOS 6 nebo CentOS 7

Icinga2 je výkonný monitorovací systém a při použití v modelu master-client může nahradit potřebu monitorovacích kontrol založených na NRPE. Hlavní klient

Jak nainstalovat Apache Cassandra 3.11.x na CentOS 7

Jak nainstalovat Apache Cassandra 3.11.x na CentOS 7

Používáte jiný systém? Apache Cassandra je bezplatný a otevřený systém pro správu databází NoSQL, který je navržen tak, aby poskytoval škálovatelnost, vysokou

Jak nainstalovat Microweber na CentOS 7

Jak nainstalovat Microweber na CentOS 7

Používáte jiný systém? Microweber je open source drag and drop CMS a online obchod. Zdrojový kód Microweber je hostován na GitHubu. Tento průvodce vám to ukáže

Jak nainstalovat Vanilla Forum na CentOS 7

Jak nainstalovat Vanilla Forum na CentOS 7

Používáte jiný systém? Vanilla forum je open source aplikace fóra napsaná v PHP. Je plně přizpůsobitelný, snadno použitelný a podporuje externí

Jak nainstalovat Mattermost 4.1 na CentOS 7

Jak nainstalovat Mattermost 4.1 na CentOS 7

Používáte jiný systém? Mattermost je open source alternativa k zasílání zpráv Slack SAAS s vlastním hostitelem. Jinými slovy, s Mattermostem můžete ca

Vytvoření sítě serverů Minecraft pomocí BungeeCord na Debian 8, Debian 9 nebo CentOS 7

Vytvoření sítě serverů Minecraft pomocí BungeeCord na Debian 8, Debian 9 nebo CentOS 7

Co budete potřebovat Vultr VPS s alespoň 1 GB RAM. Přístup SSH (s oprávněními root/administrátor). Krok 1: Instalace BungeeCord První věci

Umožňuje šifrovat na Plesku

Umožňuje šifrovat na Plesku

Ovládací panel Plesk se vyznačuje velmi pěknou integrací pro Lets Encrypt. Lets Encrypt je jedním z jediných poskytovatelů SSL, kteří rozdávají kompletní certifikáty

Umožňuje šifrovat na cPanel

Umožňuje šifrovat na cPanel

Lets Encrypt je certifikační autorita určená k bezplatnému poskytování certifikátů SSL. cPanel vytvořil úhlednou integraci, takže vy a váš klient

Jak nainstalovat Concrete5 na CentOS 7

Jak nainstalovat Concrete5 na CentOS 7

Používáte jiný systém? Concrete5 je open source CMS, který nabízí mnoho charakteristických a užitečných funkcí, které pomáhají editorům snadno vytvářet obsah

Jak nainstalovat kontrolní panel na CentOS 7

Jak nainstalovat kontrolní panel na CentOS 7

Používáte jiný systém? Review Board je bezplatný a open source nástroj pro kontrolu zdrojového kódu, dokumentace, obrázků a mnoha dalších. Je to webový software

Nastavte ověřování HTTP pomocí Nginx na CentOS 7

Nastavte ověřování HTTP pomocí Nginx na CentOS 7

V této příručce se dozvíte, jak nastavit HTTP ověřování pro webový server Nginx běžící na CentOS 7. Požadavky Chcete-li začít, budete potřebovat

Jak nainstalovat YOURLS na CentOS 7

Jak nainstalovat YOURLS na CentOS 7

YOURLS (Your Own URL Shortener) je open source aplikace pro zkracování adres URL a analýzu dat. V tomto článku se budeme zabývat procesem instalace

Jak nainstalovat a nakonfigurovat ArangoDB na CentOS 7

Jak nainstalovat a nakonfigurovat ArangoDB na CentOS 7

Používáte jiný systém? Úvod ArangoDB je open source databáze NoSQL s flexibilním datovým modelem pro dokumenty, grafy a páry klíč–hodnota. to je

Použití Etckeeper pro správu verzí /etc

Použití Etckeeper pro správu verzí /etc

Úvod Adresář /etc/ hraje kritickou roli ve způsobu fungování systému Linux. Důvodem je skutečnost, že téměř každá konfigurace systému

Proč byste měli používat SSHFS? Jak připojit vzdálený souborový systém s SSHFS na CentOS 6

Proč byste měli používat SSHFS? Jak připojit vzdálený souborový systém s SSHFS na CentOS 6

Mnoho systémových administrátorů spravuje velké množství serverů. Když je potřeba přistupovat k souborům přes různé servery, přihlaste se ke každému zvlášť ca

Nastavení serveru Half Life 2 na CentOS 6

Nastavení serveru Half Life 2 na CentOS 6

Tento návod pokryje proces instalace herního serveru Half Life 2 na systém CentOS 6. Krok 1: Instalace předpokladů Aby bylo možné nastavit ou

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.

Útoky DDOS: Stručný přehled

Útoky DDOS: Stručný přehled

Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.

Revoluční vynálezy od Googlu, které vám usnadní život.

Revoluční vynálezy od Googlu, které vám usnadní život.

Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…

Technologická singularita: vzdálená budoucnost lidské civilizace?

Technologická singularita: vzdálená budoucnost lidské civilizace?

Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.

Evoluce ukládání dat – Infografika

Evoluce ukládání dat – Infografika

Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.

Funkcionality vrstev referenční architektury velkých dat

Funkcionality vrstev referenční architektury velkých dat

Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více