Nginx で HTTP/2.0 を有効にする方法
HTTP/2 は HTTP プロトコルの最新標準であり、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 モジュールのドキュメントを参照してください。以下のフィードバック フォームからお気軽にご質問ください。