DirectAdmin(CentOS)でHTTP / 2サポートをアクティブにする方法

HTTP / 2は、SPDYに基づくHTTPプロトコルの最新バージョンです。その開発はGoogleによって開始され、HTTP / 2は主にコードベースとSPDYの概念に基づいています。

SPDYは非推奨となり、HTTP / 2の世界的な採用が進んでいます。多くのホスティング企業は、追加された速度のためにHTTP / 2のサポートをすでに提供しています。

執筆時点では、DirectAdminはHTTP / 2を有効にするワンクリックの方法を提供していません。ただし、HTTP / 2サポートを実現するには複数の方法があります。以下に概説する方法は、最も堅牢で安定したアプローチであることが証明されています。

HTTP / 2を有効にするには、いくつかのコンポーネントを更新する必要があります。このため、スナップショットを取ることを強くお勧めします。可能であれば、完全に新しいサーバーでこのガイドに従ってください。

このガイドは、クライアント(訪問者)のWebサーバー(Apache)でのHTTP / 2サポートの有効化と、cURLでのHTTP / 2のアクティブ化の2つの部分で構成されています。cURLに対してHTTP v2を有効にすると、サーバーから発信されたcURL要求は、可能であれば、宛先サーバーにHTTP / 2を利用するようになります。

キーポイント

  • HTTP / 2を使用するためにApacheとcURLの両方を更新する必要はありません。どちらのガイドも互いに独立して機能するため、どちらのガイドに従っても問題ありません。
  • ApacheとHTTP / 2が正常に機能しているように見える奇妙なケースがいくつかありますが、「ランダムな」ブラウザーでロードが成功し、他のブラウザーではサイトが到達不能(タイムアウト)になります。ApacheはHTTP / 2を認識せず、コンテンツを提供しようとしないため、元のApache構成に戻すだけでこれが修正されます。
  • 常に事前にバックアップを取るか、スナップショットを作成してください。HTTP / 2の有効化は比較的脆弱なプロセスになる可能性があるため、必要に応じて変更を元に戻すことができることが重要です。
  • ソフトウェアを再コンパイルすると、常にわずかなダウンタイムが発生する可能性があります。場合によっては、これは1分未満ですが、正確に伝える方法がありません。少なくとも、ある程度のダウンタイムに備える必要があります。
  • このガイドでは、サーバーへのrootアクセスが必要です。アクセス許可レベルをrootに上げることができない場合は、サーバー管理者に連絡してサーバーでHTTP / 2を有効にする必要があります。

HTTP / 2およびSSL

これはHTTP / 2自体の技術要件ではありませんが、ほとんどの場合、HTTP / 2を使用するにはSSL証明書が必要です。前述のように、HTTP / 2は技術的にこれを必要としませんが、多くのブラウザー(Safari、Chrome、Firefoxなど)がこの標準を作成しています。これらのブラウザーを使用してSSLなしでページをロードすると、コンテンツはHTTP / 2経由で提供されません。ほとんどのユーザーがこの標準に参加しているこれらのブラウザー(およびその他のブラウザー)を使用することを考慮して、SSL証明書を使用する必要があります。

無料のSSL証明書をお探しの場合は、Let's Encryptガイドの1つをご覧ください。

推奨:DirectAdminにLet's Encryptをインストールする

代替制御パネル:

一般的なガイド:

よくある質問

このガイドでは、Brotliのインストールについて説明していますか?

いいえ、この記事では、HTTP / 2と一緒にBrotliをインストールする方法を概説していません。

コンパイルは理由もなく失敗し、私はこの記事で概説されている正確な手順に従いました。どうすれば解決できますか?

これには多くの理由が考えられますが、さまざまな環境などを考慮すると、ロケール設定が正しくない可能性があります。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、テクノロジー自体、およびその互換性に問題はありません。他の多くのテクノロジーと同様に、ネイティブに適応するには時間がかかる場合があります。

ApacheでHTTP / 2をアクティブ化することで起こり得るリスクは何ですか?

HTTP / 2のアクティブ化(アップグレードおよび構成プロセスで構成される)には、非標準であることが判明する可能性のある多くの変数があります。ただし、最大のリスクは人的ミスにあります。事前にスナップショットを作成し、メンテナンスをユーザーに通知し(サーバー上に自分以外に存在する場合)、注意してください。さらに、最初に何をするかを考えずにコマンドをコピーして貼り付けないでください。

DirectAdminを使用して個別のVultrクラウドインスタンスを一時的に起動し、手順を実行することを強くお勧めします。「新規」インストールで問題が発生した場合は、どこでどのようにデバッグすればよいかがわかるので、実稼働環境で行う必要はありません。

パート1:Apache(Webサーバー)

現在リバースプロキシを使用している場合は、Apacheのみの環境に切り替える必要があります。これは、問題が発生した場合、HTTP / 2はデバッグが非常に難しいためです。Apacheの統合されたHTTP / 2機能を利用できることで、トラブルの大部分を効果的に排除できます。

ステップ1:OpenSSLのアップグレード

多くの場合、OpenSSLバージョンは、HTTP / 2に必要なALPNと互換性がありません。したがって、OpenSSLを更新してALPNを有効にしましょう。

まず、次のコマンドを実行して、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は、CでのHTTP / 2(およびHPACK)の実装です。Nghttp2は、CでのHTTP / 2クライアント、サーバー、およびプロキシを組み合わせたバージョンです。

nghttp2をインストールするには、次のコマンドを実行します。幸い、nghttp2はCustomBuildから直接ビルドできます。

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

ステップ3:ApacheでHTTP / 2を有効にする

HTTP / 2を使用するには、Apache構成ファイルのいくつかの値を��更する必要があります。Webサーバーが代替HTTPバージョンを使用するための指示を取得していない場合、それはそれを利用しません。したがって、HTTP / 2を構成ファイルに追加する必要があります。

これらの変更を有効にするには、CustomBuildによるApacheの再構築が必要です。ソフトウェアのビルド時に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

現在のところ、CustomBuildで使用されるApacheのデフォルト設定ファイルと同じカスタムファイルがあります。/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に必要なモジュールと設定を含めて再構築されました。つまり、HTTP / 2をサポートするApacheバージョンがサーバーにインストールされましたが、実際にそれを最初に使用するよう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がWeb(Apache)サーバーでアクティブになっているはずです。

ステップ5:サーバーを再起動する

サーバーを再起動して、再起動後も変更が維持されることを確認します。Vultrコントロールパネルから、またはrebootコマンドを実行してサーバーを再起動してください。

ステップ6:HTTP / 2をテストする

HTTP / 2の機能は、次のツールを使用して簡単にテストできます。HTTP/ 2テスト

HTTP / 2はサーバー固有であり、特定のドメインまたはWebサイトのペアに制限できないため、サーバーを指すドメイン名を入力するか、サーバーのIPアドレスでさえ機能するはずです。

テストは、HTTP / 2を介してWebサーバーに到達できるかどうかを通知します。サーバーでHTTP / 2がアクティブになっているとツールが言った場合、DirectAdmin WebサイトにはHTTP / 1.1またはHTTP / 2のいずれかでアクセスできます。クライアント(ビジター)がHTTP / 2サポートを利用できない場合、ブラウザーはHTTP / 1.1にフォールバックします。

ツールがHTTP / 2経由でWebサーバーに到達できない場合は、上記の手順を再度実行してください。一般に(上記の手順では何もアクティブに上書きされないため)、これによってセットアップが破損したり壊れたりすることはありません。

パート2:cURL

HTTP / 2をサポートするサーバーに到達できるようにcURLを更新することをお勧めします。サーバーがHTTP / 2をサポートしていない場合は、HTTP / 1.1にフォールバックします。

ステップ1:カスタム構成ファイルを追加する

Apacheと同様に、カスタム構成ファイルを作成して、CustomBuildによって構築されたcURLがカスタム設定を使用するようにします。

ディレクトリを作成します。

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サポート付きでコンパイルされました。



CentOS 7サーバーにCyber​​Panelをインストールして構成する方法

CentOS 7サーバーにCyber​​Panelをインストールして構成する方法

別のシステムを使用していますか?はじめにCyber​​Panelは、オープンソースでありOpenLiteSpeedを使用する市場で最初のコントロールパネルの1つです。なんてこった

Debian、CentOS、およびFreeBSDでSudoを使用する方法

Debian、CentOS、およびFreeBSDでSudoを使用する方法

LinuxおよびUnixのシステム管理者の間では、sudoユーザーを使用してサーバーにアクセスし、コマンドをルートレベルで実行することは非常に一般的です。sudの使用

CentOS 7へのNetdataのインストール

CentOS 7へのNetdataのインストール

別のシステムを使用していますか?Netdataは、リアルタイムのシステムメトリックモニタリングの分野における新星です。同じ種類の他のツールと比較すると、Netdata:

CentOS 7にJust Cause 2(JC2-MP)サーバーをインストールする方法

CentOS 7にJust Cause 2(JC2-MP)サーバーをインストールする方法

このチュートリアルでは、Just Cause 2マルチプレイヤーサーバーのセットアップ方法をよく学びます。前提条件開始する前に、システムが完全に更新されていることを確認してください

CentOS 7にStarbound Serverをインストールする方法

CentOS 7にStarbound Serverをインストールする方法

別のシステムを使用していますか?このチュートリアルでは、CentOS 7でStarboundサーバーをセットアップする方法を説明します。前提条件このゲームを所有している必要があります。

CentOS 8、Ubuntu 18.04、Debian 10、Fedora 31にGolang 1.13をインストールする方法

CentOS 8、Ubuntu 18.04、Debian 10、Fedora 31にGolang 1.13をインストールする方法

Go(Golangとも呼ばれます)は、静的に型付けされ、コンパイルされた、Cのようなプログラミング言語で、Googleによって開発されました。シンプルさと多用途性により、b

CentOS 7にDjangoをインストールする方法

CentOS 7にDjangoをインストールする方法

Djangoは、Webアプリケーションを作成するための一般的なPythonフレームワークです。Djangoを使用すると、ホイールを再発明することなく、アプリケーションをより速く構築できます。あなたが望むなら

CentOS 7 LAMP VPSにTextPattern CMSをインストールする方法

CentOS 7 LAMP VPSにTextPattern CMSをインストールする方法

別のシステムを使用していますか?TextPattern CMS 4.6.2はシンプルで柔軟な無料のオープンソースコンテンツ管理システム(CMS)であり、Webデザイナーが

CentOS 7にElggをインストールする

CentOS 7にElggをインストールする

別のシステムを使用していますか?Elggはオープンソースのソーシャルネットワーキングエンジンであり、キャンパスのソーシャルネットワークや

CentOS 7にFroxlor Server Management Panelをインストールする方法

CentOS 7にFroxlor Server Management Panelをインストールする方法

Froxlorは、オープンソースの無料で軽量かつ強力なサーバー管理パネルであり、Webホスティングサービスの確立と管理に最適です。ティ

CentOS 7でMatrix SynapseとRiotを使用してチャットサーバーを作成する

CentOS 7でMatrix SynapseとRiotを使用してチャットサーバーを作成する

Matrixは、分散型リアルタイム通信用のオープンスタンダードの通信プロトコルです。マトリックスは、上記に分散されているホームサーバーとして実装されています

CentOS 7にVtiger CRM Open Source Editionをインストールする方法

CentOS 7にVtiger CRM Open Source Editionをインストールする方法

Vtiger CRMは、企業が売り上げを伸ばし、顧客サービスを提供し、利益を増やすのに役立つ人気の顧客関係管理アプリケーションです。私

CentOS 7にPufferPanel(無料のMinecraftコントロールパネル)をインストールする方法

CentOS 7にPufferPanel(無料のMinecraftコントロールパネル)をインストールする方法

はじめにこのチュートリアルでは、Vultr VPSにPufferPanelをインストールしてください。PufferPanelは、オープンソースで自由に使用できるコントロールパネルで、あなたを管理します

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

この記事では、CentOS 7サーバーにApache 2.4をインストールするプロセスの概要を説明します。前提条件:最新のCentOS 7サーバー。sudoユーザー。Ste

PHPを5から7に更新する方法(NGINX / Apache、CentOS 7)

PHPを5から7に更新する方法(NGINX / Apache、CentOS 7)

はじめにこのチュートリアルでは、NGINXまたはApacheを使用してPHP 5 *を7に更新する方法について説明します。前提条件始める前に、リポジトリを追加する必要があります

CentOS 7にMoinMoinをインストールする方法

CentOS 7にMoinMoinをインストールする方法

MoinMoinは、Pythonで書かれたオープンソースのファイルシステムベースのWikiエンジンです。今日、MoinMoinはオープンソースコミュニティで広く使用されています。多くのベンダー

CentOS 7にSonarQubeをインストールする方法

CentOS 7にSonarQubeをインストールする方法

別のシステムを使用していますか?SonarQubeは、品質システム開発のためのオープンソースツールです。Javaで書かれており、複数のデータベースをサポートしています。それは提供します

CentOS 7へのPritunlのインストール

CentOS 7へのPritunlのインストール

PritunlはOpenVPNのオープンソース管理インターフェイスです。プライベートネットワークが可能で、ネイティブIPv6サポートがあり、使用方法は比較的簡単です。ター

OSの選択:CentOS、Ubuntu、Debian、FreeBSD、CoreOS、またはWindows Server

OSの選択:CentOS、Ubuntu、Debian、FreeBSD、CoreOS、またはWindows Server

この記事では、Vultrでテンプレートとして提供されるサーバーオペレーティングシステムの概要を説明します。CentOS CentOSはRHEL(Re

CentOS 7にphpPgAdminをインストールする

CentOS 7にphpPgAdminをインストールする

phpPgAdminは、広く使用されているPostgreSQL管理ツールです。これを使用して、直感的なWebインターフェイスでPostgreSQLデータベースを管理できます。この記事では、

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、