http3対応のnginxのインストール

nginxでhttp3に対応するためにはバージョン1.25以上が必要となる。 apt でインストールされるnginxのバージョンを以下のコマンドで確認する。

sudo apt update
sudo apt info nginx

sudo apt info nginxの実行後に表示されるVersionで確認できる

user@ubuntu:~$ sudo apt info nginx
Package: nginx
Version: 1.24.0-2ubuntu7
Priority: optional
Section: web
Origin: Ubuntu
...

バージョンが1.25よりも古い場合は、以下手順のコマンドで最新nginxの安定版をaptのリポジトリに追加する。(詳細はnginx公式参照)

sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list

再度、aptでインストールされるnginxのバージョンを確認する。

sudo apt update
sudo apt info nginx

バージョンが1.25以上であることを確認する。

user@ubuntu:~$ sudo apt info nginx
Package: nginx
Version: 1.26.1-2~noble
Priority: optional
Section: httpd
...

あとは普通にaptでインストールする

sudo apt install nginx

インストール後 nginx -v でバージョンが1.25以上であることを確認する。

user@ubuntu:~$ nginx -v
nginx version: nginx/1.26.1

nginx.confの設定

http3対応の要点は以下


    ssl_protocols TLSv1.3;

    server {
        listen 443 ssl;
        listen [::]:443 ssl;
        http2 on;

        listen 443 quic reuseport;
        listen [::]:443 quic reuseport;
        http3 on;

        add_header Alt-Svc 'h3=":443"; ma=86400';
    }

ファイアウォール

http3はudpで通信するため、 UDP443ポートを解放する必要がある。

sudo ufw allow 443/udp
sudo ufw status

VPS側にファイアウォールがあれば同様に開放する。
ConoHaVPSの場合、UDPのポート開放はできないようなので全開放する。(バージョン3以降の環境だとできるらしい!?)

なお、ポート開放ができていないとずっとhttp2の通信となる。


動作確認