ウェブサイト検索

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


HTTP/2HTTP プロトコルの最新標準であり、HTTP/1.1 の後継です。 Web 開発者やユーザー全般にメリットをもたらすため、ますます人気が高まっています。 HTTP/1.1 のすべてのコア機能をサポートすることで、HTTP セマンティクスに最適化されたトランスポートを提供しますが、さまざまな方法でより効率的になることを目指しています。

HTTP/2 には、Web サイト/アプリケーションを最適化する可能性を高める機能が多数あります。真の多重化と同時実行性、優れたヘッダー圧縮 (バイナリ エンコード)、優れた優先順位付け、優れたフロー制御メカニズム、そしてサーバーがクライアントに応答をプッシュできる「サーバー プッシュ」と呼ばれる新しい対話モードを提供します。 。言うまでもなく、HTTP/2 は Google の実験的な SPDY プロトコルに基づいています。

したがって、HTTP/2 の主な焦点は、Web ページの全体的な読み込み時間を短縮し、パフォーマンスを向上させることです。また、HTTP/2 ではSSL/TLS 暗号化が必須であるため、セキュリティだけでなくネットワークとサーバーのリソースの使用状況にも重点を置いています。

この記事では、Linux サーバーでHTTP/2 サポートを備えたNginx を有効にする方法について説明します。

前提条件:

  • ngx_http_v2_module モジュールで構築された、NGINX バージョン 1.9.5 以降の動作するインストール。
  • サイトで SSL/TLS 証明書が使用されていることを確認してください。証明書がない場合は、Let's Encrypt から取得するか、自己署名証明書を使用できます。

次のガイドの説明に従って、NGINX をインストールすることも、LEMP スタックを使用して展開することもできます。

  • CentOS 8 に Nginx をインストールする方法
  • CentOS 8 に LEMP サーバーをインストールする方法
  • NGINX、MySQL/MariaDB、PHP を RHEL 8 にインストールする方法
  • Ubuntu 20.04 で PhpMyAdmin を使用して LEMP スタックをインストールする方法
  • Debian 10 にサーバー ブロック (仮想ホスト) を使用して Nginx をインストールする
  • Linux で Nginx を HTTP ロード バランサとして使用する方法

NGINX で HTTP/2.0 を有効にする方法

NGINX がインストールされている場合は、次のコマンドを実行して、ngx_http_v2_module モジュールを使用してビルドされたことを確認します。

strings /usr/sbin/nginx | grep _module | grep -v configure| sort | grep ngx_http_v2_module

HTTPS が構成された NGINX によって Web サイト/アプリケーションが提供されたら、Web サイトの仮想サーバー ブロック (または仮想ホスト) ファイルを開きます。編集。

vi /etc/nginx/conf.d/example.com.conf                    [On CentOS/RHEL]
sudo nano /etc/nginx/sites-available/example.com.conf    [On Ubuntu/Debian]

次のスクリーンショットに示すように、すべての listen ディレクティブに http2 パラメータを追加するだけで、HTTP/2 サポートを有効にできます。

listen 443 ssl http2;

サンプルサーバーブロック構成は以下のようになります。


server {
        server_name example.com www.example.com;
        access_log  /var/log/nginx/example.com_access.log;
        error_log  /var/log/nginx/example.com_error.log;

        listen [::]:443 ssl ipv6only=on http2; # managed by Certbot
        listen 443 ssl http2; # managed by Certbot

        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot    
}

ファイルの変更を保存して閉じます。

次に、NGINX の構成構文を確認し、問題がなければ、Nginx サービスを再起動します。

nginx -t
systemctl restart nginx

次に、Web ブラウザを開いて、Web サイトがHTTP/2 経由で提供されているかどうかを確認します。

http://www.example.com

HTTP ヘッダーにアクセスするには、表示された Web ページを右クリックし、オプションのリストから [検査] を選択して開発者ツールを開き、[ネットワーク] タブをクリックしてリロードします。ページ。

[プロトコル] の下にチェックを入れて、サイトで使用しているプロトコルを確認します (プロトコル ヘッダーが表示されない場合は、ヘッダーのいずれか (名前 など) を右クリックし、<リストからstrong>プロトコルを選択してヘッダーとして表示します)。

サイトが HTTP/1.1 で実行されている場合は、次のスクリーンショットに示すように、プロトコルhttp/1.1 が表示されます。

HTTP/2 で実行している場合は、次のスクリーンショットに示すように、プロトコル の下に h2 が表示されます。 Web サーバーから直接提供される最新のコンテンツを表示するには、ブラウザーのキャッシュを無効にすることが必要な場合があります。

それだけです!詳細については、ngx_http_v2_module モジュールのドキュメントを参照してください。以下のフィードバック フォームからお気軽にご質問ください。