Как да активирате HTTP/2 поддръжка на DirectAdmin (CentOS)

HTTP/2 е най-новата версия на HTTP протокола, базирана на SPDY. Разработката му е инициирана от Google и HTTP/2 до голяма степен се основава на кодовата база и концепциите на SPDY.

SPDY вече е остарял и е в ход по света приемането на HTTP/2. Много хостинг компании вече са предоставили поддръжка за HTTP/2 поради добавената му скорост.

Към момента на писане, DirectAdmin не предоставя начин с едно щракване за активиране на HTTP/2. Има обаче няколко начина за постигане на поддръжка на HTTP/2. Методът, описан по-долу, се оказа най-здравият и стабилен подход.

Няколко компонента трябва да бъдат актуализирани, за да влезе в сила HTTP/2. Поради това силно ви съветвам да направите моментна снимка. Ако е възможно, следвайте това ръководство на изцяло нов сървър.

Това ръководство се състои от две части: активиране на HTTP/2 поддръжка в уеб сървъра (Apache) за клиенти (посетители) и активиране на HTTP/2 в cURL. Активирането на HTTP v2 за cURL принуждава cURL заявките, произхождащи от вашия сървър, да използват HTTP/2 за неговите целеви сървъри, ако е възможно.

Ключови точки

  • Не е необходимо да актуализирате както Apache, така и cURL, за да използвате HTTP/2. Добре е, ако следвате някое от ръководствата, тъй като те функционират отделно един от друг.
  • Имаше няколко странни случая, в които Apache и HTTP/2 изглежда функционират добре, но зареждането е успешно в „произволни“ браузъри и сайтовете стават недостъпни (изчакване) на други. Простото връщане към оригиналната конфигурация на Apache ще поправи това, тъй като Apache няма да знае за HTTP/2 и няма да се опитва да обслужва съдържание над него.
  • Винаги правете резервно копие или правете моментна снимка предварително. Активирането на HTTP/2 може да бъде сравнително крехък процес, така че е важно да можете да върнете промените, ако е необходимо.
  • Прекомпилирането на софтуер винаги може да доведе до лек престой. В някои случаи това е под минута, но няма начин да се каже точно. Трябва да сте подготвени поне за малко престой.
  • Имате нужда от root достъп до сървъра за това ръководство. Ако нямате възможност да повишите нивото на вашите разрешения до root, трябва да се свържете с администратора на сървъра, за да активирате HTTP/2 на сървъра.

HTTP/2 и SSL

Въпреки че не е техническо изискване от самия HTTP/2, в повечето случаи ще ви е необходим SSL сертификат, за да използвате HTTP/2. Както споменахме, HTTP/2 технически не изисква това, но много браузъри (Safari, Chrome, Firefox и др.) са създали този стандарт. Съдържанието няма да се обслужва през HTTP/2, когато страница се зареди без SSL с помощта на тези браузъри. Като се има предвид, че повечето потребители използват тези браузъри (и други), които също участват в този стандарт, трябва да използвате SSL сертификат.

Ако търсите безплатен SSL сертификат, трябва да разгледате едно от нашите ръководства Let's Encrypt:

Препоръчително: Инсталиране на Let's Encrypt в DirectAdmin

Алтернативни контролни панели:

Общи ръководства:

ЧЗВ

Това ръководство документира ли инсталирането на Brotli?

Не, в тази статия не е описан метод за инсталиране на Brotli заедно с HTTP/2.

Компилирането се проваля без причина и аз следвах точните стъпки, описани в тази статия. Как да разреша това?

Въпреки че има много възможни причини за това, като се вземат предвид различни среди и други подобни, вероятно настройките ви за локал не са правилни. Опитайте да поставите LC_ALL=Cпред вашите команди, така че командата за прекомпилиране на Apache да изглежда така например: LC_ALL=C ./build apache Не забравяйте интервала между LC_ALL=Cи командата!

Ще загубя ли някакви данни?

В случай, че в момента използвате настройка за обратен прокси, например с Apache и Nginx, трябва да го върнете обратно към Apache, в който случай наистина ще загубите вашите конфигурационни файлове на Nginx. В случай, че сте направили персонализирани конфигурации на VirtualHost (било то чрез командния ред или самия DirectAdmin), трябва да ги промените за всеки домейн, така че версиите на Apache да останат активни. Няма да загубите никакви данни по отношение на потребителски данни, съдържание на уебсайтове, бази данни и др.

Тези персонализирани версии ще ме спрат ли да актуализирам пакети и софтуер в бъдеще?

По принцип няма нужда да се притеснявате за това. Като се вземе предвид модулната настройка на DirectAdmin (и следователно на CustomBuild), трябва да можете да понижавате или надграждате до други версии на софтуера в бъдеще без никакви проблеми. Въпреки че трябва да документирате промените, в случай че се наложи алтернативен път за надстройка в бъдеще, не трябва да се притеснявате за версии на несъвместимост с нови версии на софтуера.

DirectAdmin не предлага HTTP/2 от кутията; със сигурност това означава, че не е съвместим или имат своите причини да не е. Защо е необходимо това решение?

Методите за инсталиране и активиране на HTTP/2, описани по-долу, не са толкова заобиколни решения, а само актуализации на пакети и промени в конфигурацията. Поради модулната настройка на DirectAdmin, тези промени са напълно наред и не трябва да причиняват проблеми или други проблеми. Трудно е да се определи защо DirectAdmin не поддържа това от кутията, като се има предвид, че авторите не са дали обяснение за това. Въпреки това, доста солидно заключение е, че DirectAdmin използва пакетите с версии от операционната система. Те обикновено не са толкова актуални, колкото пакетите по-долу. Няма нищо лошо в HTTP/2, самата технология и нейната съвместимост. Подобно на много други технологии, може да отнеме известно време, за да се адаптира.

Какви са възможните рискове от активиране на HTTP/2 с Apache?

При активирането на HTTP/2 (състоящ се от процес на надграждане и конфигуриране) има много променливи, които могат да се окажат нестандартни. Най-големият риск обаче се крие в човешката грешка. Направете моментна снимка предварително, не забравяйте да съобщите поддръжката на вашите потребители (ако има такива на сървъра освен вас) и бъдете внимателни. Освен това, не копирайте и поставяйте командите, без първо да помислите какво правят.

Силно препоръчвам временно да завъртите отделен облачен екземпляр на Vultr с DirectAdmin и да преминете през стъпките. Ако нещо се обърка при „прясна“ инсталация, ще знаете къде и как да отстраните грешките, за да не се налага в производствена среда.

Част 1: Apache (уеб сървър)

Ако в момента използвате обратен прокси, трябва да преминете обратно към среда само с Apache. Това е така, защото HTTP/2 е много труден за отстраняване на грешки, ако нещо се обърка. Като можете да използвате интегрираната HTTP/2 функционалност на Apache, вие ефективно можете да елиминирате много голяма част от проблемите.

Стъпка 1: Надстройка на OpenSSL

В много случаи вашата OpenSSL версия не е съвместима с ALPN, който е необходим за HTTP/2. Затова нека активираме ALPN, като актуализираме OpenSSL.

Първо, нека се уверим, че вашата OpenSSL версия не е съвместима, като изпълним:

openssl version

Ако вашата OpenSSL версия е по-малка от 1.1.0f, изпълнете следното като root. В противен случай преминете към стъпка 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

Стъпка 2: Инсталиране на nghttp2

За да работи HTTP/2, трябва да инсталираме nghttp2. Nghttp2 е реализация на HTTP/2 (и HPACK) в C. Nghttp2 е комбинирана версия на HTTP/2 клиент, сървър и прокси в C.

За да инсталирате nghttp2, изпълнете следните команди. За щастие, nghttp2 може да бъде изграден направо от CustomBuild.

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

Стъпка 3: Активиране на HTTP/2 в Apache

Трябва да променим няколко стойности в конфигурационния файл на Apache, за да може той да използва HTTP/2. Когато уеб сървърът не получава инструкции за използване на алтернативна HTTP версия, той няма да я използва. Затова трябва да добавим HTTP/2 към конфигурационния файл.

За да влязат в сила тези промени, е необходимо повторно изграждане на Apache чрез CustomBuild. Тъй като параметрите и стойностите, използвани от CustomBuild при изграждането на софтуер, се определят в специален конфигурационен файл, най-добрата практика е тези промени да се поставят в специален персонализиран конфигурационен файл.

Забележка: ако не поставите тези промени в персонализиран файл, те най-вероятно ще бъдат презаписани и вашата настройка ще се счупи. Моля, следвайте инструкциите, описани по-долу.

Изпълнете следните команди, за да създадете файла и да го попълните предварително със стойностите по подразбиране, за да можем да го променим след това:

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

Към момента имаме персонализиран файл, който е идентичен с конфигурационния файл по подразбиране за Apache, използван от CustomBuild. Трябва да променим /usr/local/directadmin/custombuild/custom/ap2/configure.apacheфайла, като заменим следния низ:

"--with-ssl=/usr" \

с:

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

Забележка: Уверете се, че няма празно пространство след някоя от обратните наклонени черти . Излишното празно пространство ще доведе до прекъсване на изграждането.

След това възстановете Apache. CustomBuild ще използва персонализирания конфигурационен файл, който току-що създадохте:

./build apache

Стъпка 4: Промяна на конфигурацията на Apache

Apache вече е възстановен, включително необходимите модули и настройки за HTTP/2. Това означава, че вече имаме инсталирана версия на Apache на нашия сървър с поддръжка за HTTP/2, но трябва да кажем на Apache първо да го използва.

Добавете следните редове в /etc/httpd/conf/extra/httpd-includes.conf:

ProtocolsHonorOrder On
Protocols h2 h2c http/1.1

Запазете тези промени и пренапишете конфигурационните файлове, така че да са постоянни при повторно изграждане:

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

HTTP/2 вече трябва да е активен на вашия уеб (Apache) сървър.

Стъпка 5: Рестартирайте сървъра

Рестартирайте сървъра, за да сте сигурни, че промените ни се запазват при рестартиране. Моля, рестартирайте сървъра през контролния панел на Vultr или като изпълните rebootкомандата.

Стъпка 6: Тествайте HTTP/2

Функционалността на HTTP/2 може лесно да бъде тествана с помощта на следния инструмент: HTTP/2 Test

Като се има предвид, че HTTP/2 е специфичен за сървъра и не може да бъде ограничен до конкретна двойка домейни или уебсайтове, въвеждането на име на домейн, сочещо към сървъра или дори IP адреса на сървъра, трябва да работи.

Тестът ще ви каже дали е в състояние да достигне до уеб сървъра чрез HTTP/2. В случай, че инструментът казва, че HTTP/2 е активиран на вашия сървър, уебсайтовете на DirectAdmin вече могат да бъдат достигнати чрез HTTP/1.1 или HTTP/2. В случай, че поддръжката на HTTP/2 не е налична за клиента (посетителя), неговият браузър ще се върне към HTTP/1.1.

В случай, че инструментът не може да достигне до вашия уеб сървър чрез HTTP/2, следвайте горните стъпки отново. Като цяло (тъй като горните стъпки не презаписват активно нищо) това няма да повреди или наруши вашата настройка.

Част 2: cURL

Препоръчвам да актуализирате cURL, така че да може да достигне до сървъри с поддръжка на HTTP/2. В случай, че сървърът не поддържа HTTP/2, той ще се върне към HTTP/1.1.

Стъпка 1: Добавяне на персонализиран конфигурационен файл

Точно както при Apache, ние ще създадем персонализиран конфигурационен файл, така че cURL, изграден от CustomBuild, ще използва нашите персонализирани настройки.

Създайте директорията:

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

Създайте файла:

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

Копирайте и поставете следното съдържание във файла:

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

Както можете да видите, това съдържание казва на cURL да се компилира с помощта на lib_http2SSL библиотеката.

Запазете файла и му дайте правилните разрешения:

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

Стъпка 2: Изграждане на cURL

След това всичко, което трябва да направим, е да изградим cURL.

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

cURL вече е компилиран с поддръжка на HTTP 2.


Инсталирайте Plesk на CentOS 7

Инсталирайте Plesk на CentOS 7

Използване на различна система? Plesk е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни

Как да инсталирате Squid Proxy на CentOS

Как да инсталирате Squid Proxy на CentOS

Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте

Конфигуриране на статична мрежа и IPv6 на CentOS 7

Конфигуриране на статична мрежа и IPv6 на CentOS 7

VULTR наскоро направи промени от своя страна и вече всичко трябва да работи добре от кутията с активиран NetworkManager. Ако желаете да деактивирате

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

Как да инсталирате Microweber на CentOS 7

Как да инсталирате Microweber на CentOS 7

Използване на различна система? Microweber е CMS и онлайн магазин с отворен код за плъзгане и пускане. Изходният код на Microweber се хоства на GitHub. Това ръководство ще ви покаже

Как да инсталирате Mattermost 4.1 на CentOS 7

Как да инсталирате Mattermost 4.1 на CentOS 7

Използване на различна система? Mattermost е самостоятелно хоствана алтернатива с отворен код на Slack SAAS услугата за съобщения. С други думи, с Mattermost, вие ca

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Какво ви трябва Vultr VPS с поне 1 GB RAM. SSH достъп (с root/административни привилегии). Стъпка 1: Инсталиране на BungeeCord На първо място

Lets Encrypt на Plesk

Lets Encrypt на Plesk

Контролният панел на Plesk разполага с много приятна интеграция за Lets Encrypt. Lets Encrypt е един от единствените доставчици на SSL, които предоставят пълно сертификати

Позволява криптиране на cPanel

Позволява криптиране на cPanel

Lets Encrypt е сертифициращ орган, посветен на предоставянето на SSL сертификати безплатно. cPanel изгради чиста интеграция, така че вие ​​и вашият клиент

Как да инсталирате Concrete5 на CentOS 7

Как да инсталирате Concrete5 на CentOS 7

Използване на различна система? Concrete5 е CMS с отворен код, който предлага много отличителни и полезни функции за подпомагане на редакторите при лесното създаване на съдържание и

Как да инсталирате табло за преглед на CentOS 7

Как да инсталирате табло за преглед на CentOS 7

Използване на различна система? Review Board е безплатен инструмент с отворен код за преглед на изходен код, документация, изображения и много други. Това е уеб базиран софтуер

Настройте HTTP удостоверяване с Nginx на CentOS 7

Настройте HTTP удостоверяване с Nginx на CentOS 7

В това ръководство ще научите как да настроите HTTP удостоверяване за уеб сървър на Nginx, работещ на CentOS 7. Изисквания За да започнете, ще ви трябва

Как да инсталирате YOURLS на CentOS 7

Как да инсталирате YOURLS на CentOS 7

YOURLS (Your Own URL Shortener) е приложение за съкращаване на URL адреси и анализ на данни с отворен код. В тази статия ще разгледаме процеса на инсталиране

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Използване на различна система? Въведение ArangoDB е NoSQL база данни с отворен код с гъвкав модел на данни за документи, графики и ключ-стойности. то е

Използване на Etckeeper за контрол на версиите на /etc

Използване на Etckeeper за контрол на версиите на /etc

Въведение Директорията /etc/ играе критична роля в начина, по който функционира една Linux система. Причината за това е, че почти всяка системна конфигурация

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Много системни администратори управляват големи количества сървъри. Когато файловете трябва да бъдат достъпни на различни сървъри, влизането във всеки от тях поотделно ок

Настройване на сървър на Half Life 2 на CentOS 6

Настройване на сървър на Half Life 2 на CentOS 6

Този урок ще обхване процеса на инсталиране на сървър за игри Half Life 2 на CentOS 6 System. Стъпка 1: Инсталиране на предпоставките За да настроите ou

Как да инсталирате Laravel GitScrum на CentOS 7

Как да инсталирате Laravel GitScrum на CentOS 7

Laravel GitScrum или GitScrum е инструмент за производителност с отворен код, предназначен да помогне на екипите за разработка да внедрят методологията на Scrum по подобен начин.

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече