GNU/Linux >> Linux の 問題 >  >> Linux

NginxでHTTP/2を有効にする方法

ハイパーテキスト転送プロトコルバージョン2( HTTP / 2 )はHTTPプロトコルの最新バージョンであり、2015年にRFC7540でIETF標準として公開されました。プロトコルの焦点はパフォーマンスにあります。具体的には、エンドユーザーが認識した遅延、ネットワークおよびサーバーのリソース使用量です。主要な目標の1つは、ブラウザーからWebサイトへの単一の接続を使用できるようにすることです。プロトコルには下位互換性があるため、HTTPメソッド、ステータスコード、セマンティクスは以前のバージョンのプロトコルと同じです。 Nginxはバージョン1.9.5以降HTTP/2をサポートしています。このチュートリアルでは、TLS構成がすでに機能しており、選択したLinuxディストリビューションにNginxバージョンがインストールされていること、Let's Encryptの使用方法を知っていること、または発行する方法を知っていることを前提としています。自己署名証明書。

要件

NginxでHTTP/2を有効にするには、次の要件を満たす必要があります。

  • Nginxバージョン1.9.5以降。 (nginx -vを実行すると、Nginxのバージョンを確認できます。 )コマンド。
  • OpenSSLバージョン1.0.2以降。 (OpenSSLバージョン)コマンドを実行すると、OpenSSLのバージョンを確認できます。
  • Let'sEncryptのSSL/TLS証明書または自己署名証明書。
  • TLS1.2以降のプロトコルが有効になっています。そうしないと、HTTP/2を使用できなくなります。 HTTP / 2の実装では、HTTP / 2overTLSにTLSバージョン1.2以降を使用する必要があります。

NginxでHTTP/2を有効にする

NginxでHTTP/2を有効にするには、http2を追加する必要があります listenへのパラメータ 仮想ホストのディレクティブ:

listen 443 ssl http2;

そして、Nginx構成をリロードします:

sudo systemctl reload nginx.service

一部の仮想ホストでHTTP/2を有効にするために使用できる最小限の仮想サーバー構成は次のとおりです。

server {

listen 443 ssl http2;
listen [::]:443 ssl http2;

server_name example.com;
root /path/to/public;

ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;

ssl_protocols TLSv1.2;

}

サーバーがHTTP/2をサポートしているかどうかを確認するには、ブラウザの開発ツールまたはNginxログファイルを使用できます。以下は、https://example.comドメインでHTTP/2が動作していることを示すGoogleChromeブラウザのスクリーンショットです。

Nginx $ http2埋め込み変数を使用して、ネゴシエートされたプロトコルを確認することもできます。この変数はログに記録されます:「h2 」(HTTP / 2 over TLSの場合)、「h2c 」は、クリアテキストTCPを介したHTTP / 2の場合、またはそうするように構成されている場合はNginxアクセスログ内の空の文字列。

NginxサーバーでHTTP/2を有効にする方法はこれですべてです。

リンク
  • RFC 7540
  • HTTP / 2

Linux
  1. NGINXでHTTP2を有効にする方法

  2. UbuntuとCentOSのNginxでHTTP/2を有効にする方法

  3. Debian9でHTTP/2サポートを使用してNginxを設定する方法

  1. NginxでHTTPをHTTPSにリダイレクトする方法

  2. NginxでTLS1.3を有効にする方法

  3. Ubuntu20.04のNginxでHTTP/2を構成する方法

  1. Ubuntu20.04でApacheを使用してHTTP/2プロトコルを有効にする方法

  2. NginxでIPv6を有効にする方法は?

  3. NginxでGZIP圧縮を有効にする方法